request应用案例

系统 1861 0

request案例

 request主要是面向客户端的请求,这个比response简单,

 

 

request的常用方法:
request应用案例


案例一、request案例一 获得客户机信息

 

 

 request第一部分 获取客户机信息

 url和uri的区别?

 url是uri的一个子集。

 uri可以制定任何路径。

 url必须是完整的路径。

     import java.io.IOException;
 import java.io.PrintWriter;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 public class ResponseServlet4 extends HttpServlet
 {
 
 	public void doGet(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException
 	{
 		 //测试一些客户机数据
 		System.out.println("uri:"+request.getRequestURI());
 		System.out.println("url:"+request.getRequestURL());//获得完整的url
 		
 		System.out.println("querystr:"+request.getRequestURL());//获得请求行中的参数部分
 		
 		response.setContentType("text/html;charset=utf-8");//编码方式
 		PrintWriter out=response.getWriter();
 		out.println("您的ip是:"+request.getRemoteAddr());//得到客户机的ip
 		out.println("您的客户机完整名是:"+request.getRemoteHost());
 		out.println("您的请求方式是:"+request.getMethod());
 		
 //		获得当前用户访问的资源
 		String uri=request.getRequestURI();// /myday06/request4
 		String contextpath=request.getContextPath();// /myday06
 		out.println("你正在访问的是:"+uri.substring(contextpath.length()));//这句的意思是去掉前面的信息,只保留后面的资源名称
 		
 
 	}
 
 	public void doPost(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException
 	{
 		doGet(request, response);
 	}
 
 }
  
 

案例二:获取头信息,防止盗链

 

    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 ResponseServlet5 extends HttpServlet
 {
 //防止盗链
 	public void doGet(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException
 	{
 		response.setContentType("text/html;charset=utf-8");
 		//分析原理,头信息referer,得知该次请求来源,判断是否为盗链
 		String referer=request.getHeader("referer");
 		
 		if(referer==null||!referer.startsWith("http://localhost"))
 		{
 			response.getWriter().println("<h1>盗链资源,可耻!</h1>");
 			//如果我直接访问我这个servlet,那么一定是盗链,因为referer为null
 		}else{
 			response.getWriter().println("<h1>欢迎访问</h1>");
 		}
 	}
 
 	public void doPost(HttpServletRequest request, HttpServletResponse response)
 			throws ServletException, IOException
 	{
 		doGet(request, response);
 	}
 
 }
 
  
 

案例三、处理中文乱码

案例三、防止中文乱码

 可以提交请求的两种方式

 1.使用<form>

 执行form的submit,提交form表单。

 常用表单元素

 <input type=[text | password | radio | checkbox | submit ]>

 <select>…<option>

 <textarea>

 2.使用URL链接

 <a href="http://www.163.com?name=abc&password=123"> 点击链接 </a>

 这样通过?可以提交参数,&用来分隔多个参数,

 效果和<form>的GET方式相同

 

 处理中文乱码

 数据非空校验

 

 处理中文乱码

 post乱码问题:

 setCharacterEncoding  //放在getParameter前才有效

 get乱码问题:

 new String(str.getBytes(“ISO-8859-1”),”utf-8”)

 设置tomcat Connector URIEncoding=“utf-8”

 

request应用案例


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论