[jsp]代码库
request功能 ------这里doGet()和doPost()方法不解释了
1. request功能-----获取客户端基本信息
public class RequestDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// getRequestURL方法 -- 返回客户端发出请求完整URL
String url=request.getRequestURL().toString();
System.out.println("url:"+url);
// getRequestURI方法 -- 返回请求行中的资源名部分
String uri=request.getRequestURI();
System.out.println("uri:"+uri);
// getQueryString方法 -- 返回请求行中的参数部分
String query=request.getQueryString();
System.out.println("query:"+query);
// getRemoteAddr方法 -- 返回发出请求的客户机的IP地址
String addr=request.getRemoteAddr();
System.out.println("addr:"+addr);
// getMethod方法 -- 返回客户机的请求方式
String method=request.getMethod();
System.out.println("method:"+method);
// getContextPath方法 -- 获得当前web应用的虚拟目录名称
String contextpath=request.getContextPath();
System.out.println("contextpath:"+contextpath);
// response.sendRedirect(request.getContextPath()+"/index.jsp");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
****************************************************************************************************************************************
****************************************************************************************************************************************
2. request功能-----获取请求头信息
// getHeader(name)方法 --- String
String host = request.getHeader("host");
System.out.println("host: "+host);
// getHeaders(String name)方法 --- Enumeration<String>
Enumeration values = request.getHeaders("host");
while (values.hasMoreElements()) {
String value = (String) values.nextElement();
System.out.println("value: "+value);
}
// getHeaderNames方法 --- Enumeration<String>
Enumeration headers = request.getHeaderNames();
while (headers.hasMoreElements()) {
String header = (String) headers.nextElement();
String value = request.getHeader(header);
System.out.println(header+" : "+value);
}
****************************************************************************************************************************************
****************************************************************************************************************************************
3. request功能3--- 获取请求参数
/*
* request -----获取请求参数
*getParameter(String name) -- String 通过name获得值
*getParameterValues(String name) -- String[] 通过name获得多值 如: 爱好
*getParameterNames() -- Enumeration<String> 获得所有请求参数的name
*getParameterMap() -- Map<String,String[ ]> key :name value: 多值
*/
//设置服务器接受时采用utf-8 ,必须在获取参数之前设置,否则会采用默认编码ISO8859-1来接受数据
//request.setCharacterEncoding("utf-8");//服务器默认接受参数是采用ISO8859-1编码
//1.通过name属性获得对应的值
System.out.println("username:"+request.getParameter("username"));// name="username"
System.out.println("password:"+request.getParameter("password"));//
System.out.println("email:"+request.getParameter("email"));//
//2. 一个属性多个值的情况 :
//getParameterValues(String name) -- String[] 通过name获得多值 如: 爱好
//String[ ] values=request.getParameterValues("name");//返回的是一个string数组
//3 获取所有请求参数的值:getParameterNames() -- Enumeration<String> 获得所有请求参数的name
Enumeration<String>e=request.getParameterNames();
while (e.hasMoreElements()) {
String name = (String) e.nextElement();//参数的key
String[] value=request.getParameterValues(name);//参数的value
System.out.println(name+":"+Arrays.toString(value));
}
//获取多个参数和值(键值对)采用map
Map <String,String[]>map=request.getParameterMap();
/*
* 对于客户端的提交方式不同:编码问题会导致乱码
* POST发送方式-----request.setCharacterEncoding("utf-8");
* GET发送方式------
*/
String username=request.getParameter("username");
byte[] by=username.getBytes("iso8859-1");
username=new String(by,"utf-8");
****************************************************************************************************************************************
****************************************************************************************************************************************
4 request功能4------实现请求转发
//实现请求转发
request.getRequestDispatcher("/RequestDemo4").forward(request, response);
// 其中web.xml要添加如下:
<servlet>
<servlet-name>RequestDemo4</servlet-name>
<servlet-class>request.RequestDemo4</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RequestDemo4</servlet-name>
<url-pattern>/RequestDemo4</url-pattern>
</servlet-mapping>
****************************************************************************************************************************************
****************************************************************************************************************************************
5 Request 功能5------ 实现请求包含(两个servlet的响应都会返回给客户端)
(RequestA和RequestB处理的请求响应)-----include(request, response)
request.getRequestDispatcher("/RequestB").include(request, response);
****************************************************************************************************************************************
****************************************************************************************************************************************
6 通过转发将数据带给客户端的jsp页面中去
RequestA:
// 1通过查询获取到的个人信息
String name="张飞";
int age=18;
String nickname="小飞飞";
String address="河北邯郸";
// 2 将数据保存到request域中
request.setAttribute("name", name);
request.setAttribute("age", age);
request.setAttribute("nickname", nickname);
request.setAttribute("address", address);
//3 通过转发将数据带到jsp页面中
request.getRequestDispatcher("/index.jsp").forward(request, response);
index.jsp:
其中body部分:
<body>
姓名:<%=request.getAttribute("name") %> <br>
年龄:<%=request.getAttribute("age") %> <br>
昵称:<%=request.getAttribute("nickname") %> <br>
住址:<%=request.getAttribute("address") %> <br>
</body>
by: 发表于:2017-12-26 10:40:20 顶(0) | 踩(0) 回复
??
回复评论