request案例
?request主要是面向客戶端的請求,這個比response簡單,
?
?
案例一、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 > 點擊鏈接 </a>
?這樣通過?可以提交參數,&用來分隔多個參數,
?效果和<form>的GET方式相同
?
?處理中文亂碼
?數據非空校驗
?
?處理中文亂碼
?post亂碼問題:
?setCharacterEncoding ?//放在getParameter前才有效
?get亂碼問題:
?new String(str.getBytes(“ISO-8859-1”),”utf-8”)
?設置tomcat Connector URIEncoding=“utf-8”
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
