JSP内置对象_转发重定向

JSP内置对象

request、response、pageContext、session、application、config、out、page、exception

1、request:HttpServletRequest 类的实例化对象,接收客户端请求。

2、response:HttpServletResponse 类的实例化对象,为客户端作出响应。

3、pageContext:PageContext 类的实例化对象,页面上下文,获取页面信息。

4、session:HttpSession 类的实例化对象,表示浏览器和服务器之间的一次会话,保持一个用户信息。

5、application:ServletContext 类的实例化对象,表示当前 Web 应用,全局对象,**保存所有用户的共享数据,例如:统计网站的访问量。** 

6、config:当前 JSP 对应的 Servlet 的 ServletConfig 对象,表示当前 Servlet。

7、out:JspWriter 类的实例化对象,向客户端输出信息。

8、page:指当前 JSP 对应的 Servlet 对象。

9、exception:表示 JSP 页面发送的异常。


实际开发中常用的内置对象:pageContext、request、response、session、application

request 的常用方法:

1、void setCharacterEncoding(String charset) //指定每个请求的编码

2、String getParameter(String name) //获取客户端传来的一个参数

			<form action="test.jsp" method="get">
                name:&nbsp;<input type="text" name="name"><br/>
                            <input type="submit">

            </form>
            
	<%
		//在 method="post" 的情况下设置编码
        request.setCharacterEncoding("utf-8");
        
        String name = request.getParameter("name");
    %>
    <%=name%>
3、String[] getParameters(String name) //获取客户端传来的多个参数
	
          <%
            	//localhost:8080/index.jsp?name=张三&name=李四&name=王五&age=12

	            //1.getParameterMap
	            Map<String,String[]> maps = request.getParameterMap();
	            Set<String> keys = maps.keySet();
	            for (String key:keys
	                 ) {
	              String []value = maps.get(key);
	              System.out.println(Arrays.toString(value));
	              /**  打印信息:
	                  [张三, 李四, 王五]
	                  [12]
	               */
	            }
            
	            //2.getParameterNames
                Enumeration<String> names = request.getParameterNames();
                while (names.hasMoreElements()){
                  System.out.println(names.nextElement());
                  /**
                      name
                      age
                   */
                }
                
                //3.getParameterValues
                String [] names = request.getParameterValues("name");
                System.out.println(Arrays.toString(names));
                //[张三, 李四, 王五]
          %>


    
4、void setAttribute(String key,Object value) //通过键值对的形式来保存数据

5、Object getAttribute(String key) //通过键取出数据

6、RequestDispatcher getRequestDispatcher(String path) //返回一个 RequestDispatcher 对象,
该对象的 forward 方法用于转发请求。//转发

response:

  • sendRedirect(String path) //重定向

index.jsp:

				//四大作用域只针对四个能存数据的对象
				//	page 作用域只在当前页面有效,对应的内置对象是 pageContext。
				//	session 作用域在同一次会话中有效,对应浏览器。
				session.setAttribute("name","战三");
				//	request 作用域在同一次请求内有效,对应请求。
                request.setAttribute("name","战三");
                //application 作用域对应的是整个 Web 应用,只要 Tomcat 不重启,application 就可用。
                
                //转发
	            RequestDispatcher requestDispatcher = request.getRequestDispatcher("test.jsp");
	            requestDispatcher.forward(request,response);
	            //重定向
				response.sendRedirect("test.jsp");






备注:最近来手感,写了个类似Tomcat服务

github地址:https://github.com/cnamep001/my_tomcat.git






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值