JSP+Javabean+Servlet实现用户注册

在entity包下新建javabean   也就是实体类User

注意id用 Integer 而不用 int, 因为 int 自动初始化为0


public class User {

private Integer id;

private String username;

private String password;

后面是set和get方法...

在Servlet包下创建servlet  右击Servlet包→新建→servlet   

doget和dopost方法已经默认勾选了  直接下一步

JSP+Javabean+Servlet实现用户注册_第1张图片

左上角的勾是说会把servlet注册到web.xml中  直接单击完成


JSP+Javabean+Servlet实现用户注册_第2张图片

在UserServlet中让doget做dopost方法  因为form表单是通过post方法传过来的  假如用get方法传值,dopost方法就要做doget

public void doGet(HttpServletRequest request, HttpServletResponse

response)throwsServletException, IOException {

        doPost(request,response);

}

重写dopost方法

处理提交过来时产生的中文乱码

request.setCharacterEncoding("UTF-8");

对两次密码进行判断  不同则转发到错误页面,相同则转发到信息页面,由于不涉及数据库,就把值保存在session中   跳转的页面scope要设置要session

并用try catch捕捉可能抛出的异常

try{

username=request.getParameter("username");

password=request.getParameter("password");

confirmpass=request.getParameter("confirmpass");

if(password.equals(confirmpass)){

user.setUsername(username);

user.setPassword(password);

//把对象保存在session中

request.getSession().setAttribute("UserRegister", user);

//服务器内部跳转

request.getRequestDispatcher("../userInfo.jsp").forward(request, response);

}else {

request.getRequestDispatcher("../error.jsp").forward(request, response);

}

}

catch(Exception e){

e.printStackTrace();

}

注册页面:register.jsp  action是把数据传给Servlet, 让Servlet处理 name属性的名字要和javabean中实体类entity的User中的属性一一对应

JSP+Javabean+Servlet实现用户注册_第3张图片

信息页面: 主要用userbean的方法来获取Servlet返回的数据  class为实体类User的所在路径 

scope设置为session   Servlet把数据封装在seesion中

JSP+Javabean+Servlet实现用户注册_第4张图片

不过我推荐用EL表达式获取数据,简化代码 格式:${保存对象.属性}

在这里我的对象名为UserRegister  user中已经有Username和Password属性了

user.setUsername(username);

user.setPassword(password);

//把对象保存在session中

request.getSession().setAttribute("UserRegister", user);

JSP+Javabean+Servlet实现用户注册_第5张图片

查看项目完整代码

项目地址:github.com/JinBinPeng/JSPdemo

注:js文件取于网上

你可能感兴趣的