如何在另一个页面获取request域对象设定的值
request.setAttribute(“loginError”,“用户名或密码错误”);
- getWriter().print() 以字符流的形式给浏览器响应数据 字符串,布尔值,数字,字符数组;
- getOutputStream().write() 字节流:用于文件下载
LoginServlet.java
package controller;
import bean.User;
import service.UserService;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/loginServlet")
public class LoginServlet extends HttpServlet {
//跳转到失败页面
//User user;
//跳转到成功页面
User user = new User();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//处理请求乱码:post
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
//响应数据
if(user == null){
request.setAttribute("loginError","用户名或密码错误");
request.getRequestDispatcher("/loginErrorServlet").forward(request,response);
}else{
response.sendRedirect("/success.jsp");
}
}
}
LoginErrorServlet.java
package controller;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/loginErrorServlet")
public class LoginErrorServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
writer.print("<html>");
writer.print("<head>");
writer.print("</head>");
writer.print("<body>");
String str = (String) request.getAttribute("loginError");
writer.print("<font color='red'>" + str + "</font>");
writer.print("<form method='post' action='/loginServlet'>");
writer.print("用户名:<input type='text' name='userName'> <br/>");
writer.print("密码:<input type='password' name='password'> <br/>");
writer.print("<input type='submit' value='登录'>");
writer.print("</form>");
writer.print("</body>");
writer.print("</html>");
}
}
User.java
package bean;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
success.jsp
<%--
Created by IntelliJ IDEA.
User: U100926
Date: 2021/12/30
Time: 10:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>success</title>
</head>
<body>
jump success
</body>
</html>
//跳转到失败页面
User user;
//跳转到成功页面
User user = new User();