最近在些Java server page,Java web servlet
网上教程里有个页面跳转我先在很迷,先把代码post在这
具体功能是在Login页面输入不正确的用户名或密码的时候,会重新转到到这个界面并且重置信息,等同于刷新了这页面重新开始
if(currentUser==null){
request.setAttribute("error", "用户名或密码错误!");
// 服务器跳转
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
// 获取Session
HttpSession session=request.getSession();
session.setAttribute("currentUser", currentUser);
// 客户端跳转
response.sendRedirect("main.jsp");
}
下面是index.jsp的完整代码
package com.ananas.web;
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.ananas.dao.UserDao;
import com.ananas.model.User;
import com.ananas.util.DbUtil;
import com.ananas.util.StringUtil;
public class LoginServlet extends HttpServlet{
DbUtil dbUtil=new DbUtil();
UserDao userDao=new UserDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String userName=request.getParameter("userName");
String password=request.getParameter("password");
request.setAttribute("userName", userName);
request.setAttribute("password", password);
if(StringUtil.isEmpty(userName)||StringUtil.isEmpty(password)){
request.setAttribute("error", "用户名或密码为空!");
request.getRequestDispatcher("index.jsp").forward(request, response);
return;
}
User user=new User(userName,password);
Connection con=null;
try {
con=dbUtil.getCon();
User currentUser=userDao.login(con, user);
if(currentUser==null){
request.setAttribute("error", "用户名或密码错误!");
// 服务器跳转
request.getRequestDispatcher("index.jsp").forward(request, response);
}else{
// 获取Session
HttpSession session=request.getSession();
session.setAttribute("currentUser", currentUser);
// 客户端跳转
response.sendRedirect("main.jsp");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}