HttpServletRequest对象获取浏览器信息_linux tomcat 中文乱码_防盗链Referer判断

HttpServletRequest对象代表顾客端的恳求,当顾客端通过HTTP合同访问服务器时linux tomcat 中文乱码,HTTP恳求头中的所有信息都封装在这个对象中,开发⼈员通过这个对象的⽅法,可以获得顾客这种信息。简单来说linux tomcat 中文乱码,要得到浏览器信息,就找HttpServletRequest对象。

防盗链#

获取Referer这个消息头,判定Referer是不是从指定页面来的。倘若不是从指定页面的,跳转回指定页面。

这可以用于保证页面广告的观看,浏览量等。

Copy@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取消息头
        String referer = req.getHeader("Referer");
        //判断访问来源
        if (referer == null || !referer.contains("/hello.jsp")){
            resp.sendRedirect("/hello.jsp");
            return ;
        }

linux tomcat 中文乱码_防盗链Referer判断_HttpServletRequest对象获取浏览器信息

//确定来源自指定页面后,开放资源 //设置页面编码 resp.setHeader("Content-Type","text/html;charset=UTF-8"); //输出内容 resp.getWriter().write("这是可以访问的资源。。。"); }

直接访问资源

重定向到指定页面

HttpServletRequest对象获取浏览器信息_防盗链Referer判断_linux tomcat 中文乱码

调试模式下可以看见状态码302(被重定向)。

linux tomcat 中文乱码_HttpServletRequest对象获取浏览器信息_防盗链Referer判断

GET方法递交数据#

Copy@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //重定向
        resp.sendRedirect("/request/getServlet?username=ling");
    }

?后接数据。

Copy@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //请求重定向的 Servlet 為 demoHttpServlet
        String username = req.getParameter("username");
        System.out.println(username);
    }

linux tomcat 中文乱码_HttpServletRequest对象获取浏览器信息_防盗链Referer判断

用Request对象接收指定属性的值linux多线程,并复印验证。

防盗链Referer判断_linux tomcat 中文乱码_HttpServletRequest对象获取浏览器信息

POST方法表单递交数据#

Copy @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置request 字符编码
        req.setCharacterEncoding("UTF-8");
        //接收数据
            //接收单个值
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String gender = req.getParameter("gender");
        String address = req.getParameter("address");

linux tomcat 中文乱码_防盗链Referer判断_HttpServletRequest对象获取浏览器信息

String textarea = req.getParameter("textarea"); //接收多个值 String[] hobbies = req.getParameterValues("hobbies"); //接收隐藏域的值 String myname = req.getParameter("myname"); //控制台输出数据,验证是否接受数据 System.out.println(username); System.out.println(password); System.out.println(gender); for (String hobby : hobbies) { System.out.print(hobby); }

linux tomcat 中文乱码_防盗链Referer判断_HttpServletRequest对象获取浏览器信息

System.out.println(" "); System.out.println(address); System.out.println(textarea); System.out.println(myname); }

相关页面可自行编撰一个表单

HttpServletRequest对象获取浏览器信息_linux tomcat 中文乱码_防盗链Referer判断

这儿须要提醒的是,注意页面的编码问题,否则会出现乱码问题。通常是由于编码问题造成,须要统一编码。

这儿的编码问题和GET方法的有所不同,POST方法递交的数据封装在Request对象里,而GET方法则是保存在消息头中传递到下一个Servlet或则页面中的。因而GET方式的编码问题相对来说有些棘手,由于涉及到Tomcat编码(默认是ISO8859-1)和浏览器编码之间的转换linux解压命令,也可以通过更改Tomcat的编码来实现等等,工作量远比POST方法直接设置Request对象的编码繁杂。为此我给出下边一个建议(真不是我懒不写了):

通常情况下递交数据能使用就使用POST方法递交。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复