栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java获取网页表单数据,转发与重定向,使用application统计访问次数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java获取网页表单数据,转发与重定向,使用application统计访问次数

初始界面

 提交后跳转到doUser来处理信息

 在<%%>内可以写进java代码,来获得表单内部用户提交的信息

​​​​<%
           request.setCharacterEncoding("UTF-8");

           String name=request.getParameter("name");
           String pwd=request.getParameter("pwd");
           String sex=request.getParameter("sex");
           //爱好
            String[] loves=request.getParameterValues("love");
       %>

如果姓名不为张三则进入注册失败的页面

使用的是重定向:

response.sendRedirect(request.getContextPath()+"/shibai.jsp");

其中request.getContextPath()为,返回上一级目录

因为request的作用域只有一次请求内,重定向进行了两次请求,而session的作用域是一整个会话,所以这里使用了session来保存用户的信息,

(session保存的本质是键值对,这里的爱好是一个字符数组,是不建议保存在session里的)

姓名为张三则进入注册成功页面

使用的是转发:

request.getRequestDispatcher("chengg.jsp").forward(request,response);
<%

           if (!name.equals("张三")){
               session.setAttribute("name",name);
               session.setAttribute("pwd",pwd);
               session.setAttribute("sex",sex);
                session.setAttribute("loves",loves);
//               request.setAttribute("mess","注册失败");
              response.sendRedirect(request.getContextPath()+"/shibai.jsp");
           }
       else{
           request.setAttribute("mess","注册成功");
           request.getRequestDispatcher("chengg.jsp").forward(request,response);

       }
       %>

session:

ession更像服务器用来记录客户状态的一种机制

每一个sessin都有个自己的ID,可以区别每个用户的操作并且区分开

一次session就叫一次会话

一次会话就是用户访问一次服务器的过程

会话比请求(request)范围更大,会话可以包含多个请求

同一个机器同一个浏览器是同一个session

不一样的浏览器是不一样的session

可以用

out.print(session.getId());

来查看当前的session的id

以进入失败页面为例:

因为注册成功时成功页面的跳转使用的方法是转发,只进行了一次请求(request)所以可以在进入成功页面后再使用request来获取用户信息,除了可以使用request这个区别,其他的和失败页面类似

进入失败页面后

因为session里保存的是键值对,所以使用键名来获得值

访问次数:使用application

application内数据也是键值对

先创建一个cont,若是第一次访问,这时cont为null,给它赋值为1

第一次之后的访问时cont不为null,set application内的cont值加一

application的数据是整个项目共享的,而且不同的session可以操作同一个数据

所以不同的session访问这个项目的网页都会增加访问次数

若是重启服务器,则application里的数据会重置

 <%
        Object name=session.getAttribute("name");
        Object pwd=session.getAttribute("pwd");
        Object sex=session.getAttribute("sex");
        Object aihao=session.getAttribute("loves");
//        Object[] loves=request.getParameterValues("love");
        Object cont=application.getAttribute("cont");
        if(cont==null){
            application.setAttribute("cont",1);
        }else {
            Integer i=(Integer)cont;
            application.setAttribute("cont",i+1);
        }

        Integer i=(Integer)application.getAttribute("cont");
        out.println("访问次数:"+i);
    %>
    
用户名:<%=name%>
密码:<%=pwd%>
性别:<%=sex%>
爱好:<% String[] str=(String[])aihao; for (String hobby:str){ String hobb=(String)hobby ; out.print(hobb+","); }%>

session是放服务器端的,所以东西尽量不放在session里,会影响服务器的性能,所以可以对session做清除和过期的操作

方法一:会话失效:

session.invalidate();

方法二:通过键名移除session内的属性

session.removeAttribute("username");

方法三:服务器主动清除长期没有发出请求的会话

public void setMaxinactiveInterval(int interval);

Servlet 容器指示该 session 会话无效之前,指定客户端请求之间的时间,以秒为单位。

方法四:在配置文件中(web.xml)里更改会话过期时间


30

单位为分钟

四个jsp的源码:

初始页面

<%@ page import="javax.xml.crypto.Data" %>
<%@ page import="java.time.LocalDate" %><%--

--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title
    
    
    






    
        

注册 | 登录 | 帮助

<% String hello="hello world"; LocalDate date = LocalDate.now(); %> <% out.print("当前时间是:"+date); %>

/>

2-6位中文组成

请输入6-12位密码

请再次输入密码

男 女

唱 跳 rap 篮球 music

ex:123456@qq.com

请输入11位电话号码

<% // out.print(session.getId()); %>

初始页面的css

.head
{
    width: 100%;
    text-align: center;
    border-bottom: solid;
    border-bottom-color:#154e79;
    margin: 0px;
}
.register
{
    width: 100%;
    text-align: center;

}

.zong
{
    background-color:#7591ad;
    margin: 0%;
    width:40%;
    border: solid;
    border-radius: 10px;
    border-color:#154e79;
    position: relative;
    left: 30%;
}
label
{
    margin-left: 10%;
    text-align: left;
}
.register p
{
    width: 100%;
    text-align: left;
}
#submit
{
    margin-left: 30%;
}

doUser

<%--
 
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



       <%
           request.setCharacterEncoding("UTF-8");

           String name=request.getParameter("name");
           String pwd=request.getParameter("pwd");
           String sex=request.getParameter("sex");
           //爱好
            String[] loves=request.getParameterValues("love");
       %>
       用户名:<%=name%>
密码:<%=pwd%>
性别:<%=sex%>
<% if (!name.equals("张三")){ session.setAttribute("name",name); session.setAttribute("pwd",pwd); session.setAttribute("sex",sex); session.setAttribute("loves",loves); // request.setAttribute("mess","注册失败"); response.sendRedirect(request.getContextPath()+"/shibai.jsp"); } else{ request.setAttribute("mess","注册成功"); request.getRequestDispatcher("chengg.jsp").forward(request,response); } %>

chengg

<%--

--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


注册成功!
<%
    Object cont=application.getAttribute("cont");
    if(cont==null){
        application.setAttribute("cont",1);
    }else {
        Integer i=(Integer)cont;
        application.setAttribute("cont",i+1);
    }

    Integer i=(Integer)application.getAttribute("cont");
    out.println("访问次数:"+i);
    out.println("用户选择了:");
    String name=request.getParameter("name");
    String pwd=request.getParameter("pwd");
    String sex=request.getParameter("sex");
    String[] loves=request.getParameterValues("love");
%>

用户名:<%=name%>
密码:<%=pwd%>
性别:<%=sex%>
爱好:<% for (String hobby:loves){ out.print(hobby+","); }%>

shibai

<%--

--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


    注册失败!
    <%
        Object name=session.getAttribute("name");
        Object pwd=session.getAttribute("pwd");
        Object sex=session.getAttribute("sex");
        Object aihao=session.getAttribute("loves");
//        Object[] loves=request.getParameterValues("love");
        Object cont=application.getAttribute("cont");
        if(cont==null){
            application.setAttribute("cont",1);
        }else {
            Integer i=(Integer)cont;
            application.setAttribute("cont",i+1);
        }

        Integer i=(Integer)application.getAttribute("cont");
        out.println("访问次数:"+i);
    %>
    
用户名:<%=name%>
密码:<%=pwd%>
性别:<%=sex%>
爱好:<% String[] str=(String[])aihao; for (String hobby:str){ String hobb=(String)hobby ; out.print(hobb+","); }%>


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号