1、request的方法一览
package com.xiaozhi.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDemo extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
System.out.println(request.getRequestURI());///HelloJavaWeb/servlet/ServletDemo
System.out.println(request.getRequestURL());//http://localhost:8080/HelloJavaWeb/servlet/ServletDemo
//用在权限设置上
System.out.println(request.getQueryString());//name=xiaozhi
System.out.println(request.getRemoteAddr());//127.0.0.1
System.out.println(request.getRemoteHost());//127.0.0.1
System.out.println(request.getRemotePort());//51521//这个端口是变化的
System.out.println(request.getMethod());//GET
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
}
}
2、request获取表单数据index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="/HelloJavaWeb/servlet/ServletDemo" method="post">
用户名1:<input type="text" name="username"><br/>
用户名2:<input type="text" name="username"><br/>
密码:<input type="text" name="password"><br/>
<input type="submit" value="提交"><br/>
</form>
</body>
</html>
ServletDemo.java
package com.xiaozhi.controller;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import com.xiaozhi.bean.User;
public class ServletDemo extends HttpServlet
{
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
System.out.println("-------------");
test2(request);
}
//获取表单数据
public void test2(HttpServletRequest request)
{
String value=request.getParameter("username");
//开发原则:先检查再使用
if(value != null && !value.trim().equals(""))
System.out.println(value);
//获取的是一个数组
String value2[]=request.getParameterValues("username");
for(String v:value2){
System.out.println("username="+v);
}
Enumeration e=request.getParameterNames ();
while(e.hasMoreElements()){
String name=(String) e.nextElement();
value=request.getParameter(name);
System.out.println(name+"="+value);
}
//使用Map来填充bean
Map<String,String[]> map=request.getParameterMap();
User user=new User();
try {
BeanUtils.populate(user, map);
} catch (Exception e1) {
e1.printStackTrace();
}
System.out.println();
System.out.println(user);
}
//获取请求头请求数据
public void test1(HttpServletRequest request)
{
String headValue=request.getHeader("Accept-Encoding");
Enumeration e=request.getHeaderNames();
while(e.hasMoreElements()){
String name=(String) e.nextElement();
String value=request.getHeader(name);
System.out.println("name = "+name+",value = "+value);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
}
}
3、request乱码问题解决
package com.xiaozhi.controller;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import com.xiaozhi.bean.User;
public class ServletDemo extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//get方式//手工解决
String name=request.getParameter("username");
System.out.println(new String(name.getBytes("ISO-8859-1"),"utf-8"));
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//request乱码
//post方式//设置request
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("username");
System.out.println(name);
}
}
4、request实现转发
package com.xiaozhi.controller;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import com.xiaozhi.bean.User;
public class ServletDemo extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
}
}
5、request实现防盗链
inde.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<a href="/HelloJavaWeb/servlet/ServletDemo3">高考成绩查询</a>
</body>
</html>
ServletDemo3
package com.xiaozhi.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDemo3 extends HttpServlet
{
//防盗链
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
String referer = request.getHeader("referer");
//从qq群共享连接,直接访问//不是从我的网站进入
if (referer == null || !referer.startsWith("http://localhost"))
{
response.sendRedirect("/HelloJavaWeb/index.jsp");
return;
}
response.getOutputStream().write("高考成绩查询<br/>".getBytes());
response.getOutputStream().write("输入学生证号<br/>".getBytes());
response.getOutputStream().write("输入身份证号<br/>".getBytes());
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
}
}
6、得到项目路径
request.getContextPath();