JSP使用自定义标签防止表单重复提交的方法

时间:2021-05-26

本文实例讲述了JSP使用自定义标签防止表单重复提交的方法。分享给大家供大家参考。具体如下:

1. 编写servelt:

package cn.itcast.apsliyuan.web.servlet;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 LoginServet extends HttpServlet { /** * 反序列化 */ private static final long serialVersionUID = 4960707156159691747L; @Override public void doPost(HttpServletRequest requset, HttpServletResponse response) throws ServletException, IOException { // 获得输入框中的值 String token = requset.getParameter("tokenName"); // 获得session中的值 String sessionToken = (String) requset.getSession().getAttribute( "token"); if (token.equals(sessionToken)) { response.getWriter().print("保存成功"); requset.getSession().removeAttribute("token");//为了保证session中的值不重复,所以移除 } else { response.getWriter().print("对不起不能重复提交"); } }}

2. 编写自定义标签的类:

package cn.itcast.apsliyuan.tag;import java.io.IOException;import java.util.UUID;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;public class LoginTokenTag extends TagSupport{ /** * 凡序列化 */ private static final long serialVersionUID = -1815168785364991254L; @Override public int doStartTag() throws JspException { // TODO Auto-generated method stub //得到uuid String uuid=UUID.randomUUID().toString().replace("-",""); //得到session,pageContext 是域对象同样也是工具类 pageContext.getSession().setAttribute("token",uuid); String html="<input type='text' name='tokenName' readonly='readonly' value="+uuid+">"; try { pageContext.getOut().print(html); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return EVAL_BODY_INCLUDE; }}

3. 编写×.tld文件:

<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://e-file-list> <servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>cn.itcast.apsliyuan.web.servlet.LoginServet</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/server/Login</url-pattern> </servlet-mapping> <filter> <filter-name>UncodeFilter</filter-name> <filter-class>cn.itcast.apsliyuan.filter.UncodeFilter</filter-class> </filter> <filter-mapping> <filter-name>UncodeFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>

希望本文所述对大家的JSP程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章