关于JSP中request的一些总结

本文详细介绍了Java Web开发中请求转发与重定向的区别及其使用场景。通过具体实例展示了如何实现请求转发并传递参数,同时对比了请求转发与重定向的不同之处。
  • //处理form表单中method为post请求的转码

    request.setCharacterEncoding(“utf8”);

    //key——value键值对

    request.setAttribute(<String>,<Object>);

    //通过字符串获取到value值,并且需要用一个Object类型的变量来接收,也可以强制转换,比如String类型的

    request.getAttribute(<String>);

    //请求转发(一个请求,一个响应)有时候跳不到main页面,但可以取到main页面的内容,可传值

    request.getRequestDispatcher(“main.jsp”).forward(request,response);

    //请求重定向(两个请求,两个响应)一般不传值

    request.sendRedirect(“main.jsp”);

    下面是请求转发的工作原理

     

     

    对于request的实际操作

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<form action="loginDo.jsp" method="post">
    		<table>
    			<tr><td>用户名:</td><td><input type="text" name="uname"></td></tr>
    			<tr><td>密&nbsp;码:</td><td><input type="password" name="upwd"></td></tr>
    			<tr><td><input type="submit" value="登录"></td></tr>
    		</table>
    	</form>
    </body>
    </html>

     

    这个是登陆界面login.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"
        import="java.util.ArrayList"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    	<%
    	request.setCharacterEncoding("utf8");	//1、处理post请求
    	
    	//2、处理get请求  new String(request.getParameter().getBytes("ISO-8859-1"),"utf8");
    	String name=request.getParameter("uname");
    	String pwd=request.getParameter("upwd");
    	
    	System.out.println(name+"====="+pwd);
    	
    	ArrayList<String> alist=new ArrayList<String>();
    	alist.add("aaaaaa");
    	alist.add("bbbbbbbb");
    	alist.add("ccccccc");
    	
    	
    	request.setAttribute("hhhh", alist);		// key -value  键值对
    	//response.sendRedirect("main.jsp");		//请求的重定向(两个请求,两个响应)
    	request.getRequestDispatcher("main.jsp").forward(request, response); 	//请求转发(一个请求,一个响应)
    	
    	%>
    </body>
    </html>

     

    这个是处理页面loginDo.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"
        import="java.util.ArrayList"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <%
        ArrayList<String> alist=(ArrayList<String>)request.getAttribute("hhhh");
        for(int i=0;i<alist.size();i++){%>
            <%=alist.get(i) %>        
        <%}
            
        
        %>
    </body>
    </html>

  • 这个是主页面

转载于:https://my.oschina.net/cannianguaishushu/blog/687446

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值