一 request对象
1 .request对象最主要的作用
是接收参数,当客户端请求一个jsp页面或一个Servlet时,容器(服务器)会将客户端的请求信息包装在这个request对象中,request对象封装了用户提交的信息,通过调用该对象相应的方法可以获取来自客户端的请求信息,然后做出响应。Request对象是HttpServletRequest类的实例。
2.request对象的常用的方法
getAttribute(String name):返回指定属性的属性值
getParameter(String name): 返回name指定参数的参数值
setAttribute(String key,Object obj): 设置属性的属性值
getSession():创建一个session对象
3.request对象常用的技术:
用getParameter()方法获取表单提交的信息,如以下示例
Forml.jsp页面通过表单servlet(requestforml)提交用户名和密码信息;requestforml通过request对象获取表单提交的信息。
forml.jsp的代码如下:
<body>
<form action=”requestforml” method=”post”>
<P>姓名<input type=”text” size=”20”name=”UserID”></P>
<P>密码<input type=”password”size=”20”name=”UserPWD”></P>
<P><input type=”submit” value=”提交”></P>
</form>
</body>
注意:表单提交的方法有get与post两种,二者的主要区别是get方法会在提交的过程中显示提交信息。
requestforml核心代码如下:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html”);
String name=request.getParameter(“UserID”);
String pass=request.getParameter(‘UserPWD”);
System.out.println(name);
System.out.println(pass);
}
getAttribute()方法及request.setAttribute()方法的应用
request对象用来传递两个页面之间的数据,getparameter()方法用于后端(Servlet或JSP)获取前端的各类表单信息,如果后端向前端发回数据,则需要用到request.setAttribute()方法,即设值,前端接受数据则用getAttribute()方法。即取值。
doGet代码:
RequestDiapatcher dispatcher=null;
Request.setAttribute(“log”,”error”);//在request中写数据
dispatcher.forward(request,response);//向前端发数据
二.reponse对象
1.request对象和reponse对象是相铺相成的,request对象用来得到客户端的信息,reponse对象处理服务器端对客户端的一些相应,reponse对象对客户的请求做出动态的响应,主要是向客户端发送头部数据,reponse对象是HttpServletResponse类的实例
2.Request.setCharacterEncoding(“utf-8”);
Response.setContentType(“text/html”);与就是jsp中的Charset=”utf-8”
两者的作用:
将输出中文以utf-8的方式进行编码
同时让浏览器显示编码的方式设置为utf-8,jsp最终会翻译成servlet中的PageEncoding=”utf=8”
3.使用response对象实现重定向
对于response对象的sendRedirect方法,可以将当前客户端的请求转到其他页面去,相应的代码格式为”response.sendRedirect(“URL地址”),下面示例login.html提交姓名到response3.jsp页面,如果提交的姓名为空,则需要重定向到login.html页面,否则显示 欢迎界面
login.html代码如下:
<body>
<form action=”response3.jsp”method=”post”>
<P>姓名:<input type=”text”size=”20”name=”UserID”></P>
<P><input type=”submit”value=”提交”></P>
</form>
</body>
Response3.jsp代码如下:
<body>
<% String s=request.getParameter(“UserID”);
Byte b[]=s.getBytes(“utf-8”);
S=new String(b);
If(s==null) {s=””;reponse.sendRedirect(“login.html”);}
else out.println(“欢迎您来到本网页!”+s);
%s>
<body>
注意:用dispatcher.forward(request,response)方法和response对象中的sendRedirect方法都可以实现页面的重定向,但二者是有区别的,前者只能在本网站跳转,且跳转后,在地址栏中仍然显示以前页面的URL,跳转前后的两个页面属于同一个request,跳转前后的两个页面属于同一个request,用户程序可以用request来设置或传递用户程序数据,但对于response.sendRedirect则不一样了,他相对前者是绝对的跳转,在地址栏中显示的是跳转后页面的URL,跳转前后的两个页面不属于同一个request。