Servlet传递表单信息小案例的一些注意问题

项目简介:

  包含登录界面(reg.jsp)、表单显示界面(userinfo.jsp)、用户属性封装包(entity.Users)、servlet获取表单数据包(servlet.RegServlet)。

登录界面输入获得的信息,通过servlet获取表单数据,利用userinfo.jsp显示获得的用户信息。

在此记录调试过程中出现的问题:

  在eclipse中自动配置servlet时:  @WebServlet(name = "RegServlet", asyncSupported = true, urlPatterns = { "/servlet/RegServlet" })   注意urlPatterns内容为{/包名/servlet类名}

当不加包名时页面报错。

  用户类中:对于boolean类型的变量不要以is开头,会导致封装的方法出现一些问题。

  登录界面:主要就是form标签中的action属性,使用格式:<form action="servlet/RegServlet"></form>注意为包名加类名

  servlet获取表单:利用request.getParameter()方法对单个表单数据进行保存,利用用户类封装的方法对各个属性进行赋值,之后将所有保存的数据利用

request.getSession().setAttribute("regUser", u);保存到session中。/*regUser为自定义的用户名*/,最后跳转到userinfo.jsp页面输出信息(方法:request.getRequestDispatcher("/userinfo.jsp").forward(req,resp);)

  表单显示:<jsp:useBean  id="regUser" class="entity.Users" scope="session"/>   //声明一个JavaBean

       <jsp:getProperty name="regUser" property="username"/>//获取信息

补充语法:

<jsp:useBean> 标签可以在JSP中声明一个JavaBean,然后使用。声明后,JavaBean对象就成了脚本变量,可以通过脚本元素或其他自定义标签来访问。<jsp:useBean>标签的语法格式如下:

<jsp:useBean id="bean 的名字" scope="bean 的作用域" typeSpec/>


下面插入RegServlet的代码以供参考
 1 package servlet;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 
11 import entity.Users;
12 
13 /**
14  * Servlet implementation class RegServlet
15  */
16 @WebServlet(name = "RegServlet", asyncSupported = true, urlPatterns = { "/servlet/RegServlet" })
17 public class RegServlet extends HttpServlet {
18     private static final long serialVersionUID = 1L;
19        
20     /**
21      * @see HttpServlet#HttpServlet()
22      */
23     public RegServlet() {
24         super();
25     }
26 
27     /**
28      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
29      */
30     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
31         doPost(request, response);
32     }
33 
34     /**
35      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
36      */
37     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
38         request.setCharacterEncoding("utf-8");
39         
40         System.out.println("1");
41         Users u = new Users();
42         String username,mypassword,gender,email,introduce,isAccept;
43         try 
44         {
45             username = request.getParameter("username");
46             mypassword = request.getParameter("mypassword");
47             gender = request.getParameter("gender");
48             email = request.getParameter("email");
49             introduce = request.getParameter("introduce");
50             if(request.getParameter("isAccept")!=null)
51             {
52                 isAccept = "true";
53             }
54             else
55             {
56                 isAccept = "false";
57             }
58             System.out.println("2");
59             u.setUsername(username);
60             u.setMypassword(mypassword);
61             u.setEmail(email);
62             u.setGender(gender);
63             u.setIntroduce(introduce);
64             if(isAccept.equals("true"))
65             {
66                 u.setFlag(true);
67             }
68             else
69             {
70                 u.setFlag(false);
71             }
72             //把注册成功的用户信息保存到session中
73             request.getSession().setAttribute("regUser", u);
74             
75             
76             System.out.println("3");
77             request.getRequestDispatcher("/userinfo.jsp").forward(request,response);
78         }catch(Exception e)
79         {
80             e.printStackTrace();
81         }
82         
83     }
84 
85 }

 

posted @ 2018-08-16 13:01  hu啦啦啦  阅读(314)  评论(0编辑  收藏  举报