Servlet之处理请求(三)

it2024-10-03  40

2.请求转发 在实际应用中,会使用到请求转发(forward)到其他资源。 为实现请求转发,需要通过请求对象的getRequestDispatcher()得到RequestDispatcher对象,该对象叫做请求转发器对象,其方法格式如下: RequestDispatcher getRequestDispatcher(String path)

RequestDispatcher接口定义两个方法: void forward(ServletRequest request,ServletRequest response) void include(ServletRequest request,ServletRequest response)

3.使用请求对象存储数据 请求对象是一个作用域对象,可以在其上存储属性实现数据共享。 属性包括属性名和属性值。属性名是一个字符串,属性值是一个对象。 void setAttribute(String name,Object obj):将指定名称name的对象obj作为属性值存储到请求对象中;

Object getAttribute(String name):需要类型转换,返回请求对象中存储的指定名称的属性值,如果指定名称的属性不存在,则返回NULL;

void removeAttribute(String name):请求对象中删除指定名称的属性

Enumeration getAttributeNames():返回一个Enumeration对象,它是请求对象中包含所有的属性名的枚举。

package com.demo; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class LoginServlet */ @WebServlet("/login.do") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //--request获取参数 String username= request.getParameter("username"); //利用request.getParameter获得请求参数 String password= request.getParameter("password"); //--response响应参数 response.setContentType("text/html;charset=UTF-8"); PrintWriter out=response.getWriter(); out.print("<html><body>"); if("admin".equals(username)&&"admin".equals(password)) { // out.print("登录成功!欢迎您!"+username); request.setAttribute("username", username); //请求里面存放一些属性,以此来共享 RequestDispatcher rd =request.getRequestDispatcher("/welcome.jsp"); //获得请求转发器 rd.forward(request, response); } else { // out.print("登录失败!"); RequestDispatcher rd=request.getRequestDispatcher("/login.jsp"); rd.forward(request,response); } out.print("</body></html>"); } } <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登陆成功,welcom.jsp</title> </head> <body> <h4>登陆成功,欢迎您!${username}</h4> </body> </html>
最新回复(0)