国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JSP > 正文

JSP使用自定義標(biāo)簽防止表單重復(fù)提交的方法

2024-09-05 00:22:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇文章主要介紹了JSP使用自定義標(biāo)簽防止表單重復(fù)提交的方法,以實(shí)例形式較為詳細(xì)的分析了JSP基于自定義標(biāo)簽防止表單重復(fù)提交的具體步驟與實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了JSP使用自定義標(biāo)簽防止表單重復(fù)提交的方法。分享給大家供大家參考。具體如下:

1. 編寫servelt:

 

 
  1. package cn.itcast.apsliyuan.web.servlet; 
  2. import java.io.IOException; 
  3. import javax.servlet.ServletException; 
  4. import javax.servlet.http.HttpServlet; 
  5. import javax.servlet.http.HttpServletRequest; 
  6. import javax.servlet.http.HttpServletResponse; 
  7. public class LoginServet extends HttpServlet { 
  8. /** 
  9. * 反序列化 
  10. */ 
  11. private static final long serialVersionUID = 4960707156159691747L; 
  12. @Override 
  13. public void doPost(HttpServletRequest requset, 
  14. HttpServletResponse response) throws ServletException, IOException { 
  15. // 獲得輸入框中的值 
  16. String token = requset.getParameter("tokenName"); 
  17. // 獲得session中的值 
  18. String sessionToken = (String) requset.getSession().getAttribute( 
  19. "token"); 
  20. if (token.equals(sessionToken)) { 
  21. response.getWriter().print("保存成功"); 
  22. requset.getSession().removeAttribute("token");//為了保證session中的值不重復(fù),所以移除 
  23. else { 
  24. response.getWriter().print("對(duì)不起不能重復(fù)提交"); 

2. 編寫自定義標(biāo)簽的類:

 

 
  1. package cn.itcast.apsliyuan.tag; 
  2. import java.io.IOException; 
  3. import java.util.UUID; 
  4. import javax.servlet.jsp.JspException; 
  5. import javax.servlet.jsp.tagext.TagSupport; 
  6. public class LoginTokenTag extends TagSupport{ 
  7. /** 
  8. * 凡序列化 
  9. */ 
  10. private static final long serialVersionUID = -1815168785364991254L; 
  11. @Override 
  12. public int doStartTag() throws JspException { 
  13. // TODO Auto-generated method stub 
  14. //得到uuid 
  15. String uuid=UUID.randomUUID().toString().replace("-",""); 
  16. //得到session,pageContext 是域?qū)ο笸瑯右彩枪ぞ哳?/span> 
  17. pageContext.getSession().setAttribute("token",uuid); 
  18. String html="<input type='text' name='tokenName' readonly='readonly' value="+uuid+">"
  19. try { 
  20. pageContext.getOut().print(html); 
  21. catch (IOException e) { 
  22. // TODO Auto-generated catch block 
  23. e.printStackTrace(); 
  24. return EVAL_BODY_INCLUDE; 

3. 編寫×.tld文件:

 

 
  1. <?xml version="1.0" encoding="UTF-8" ?> 
  2. <taglib xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  4. http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd" 
  5. version="2.1"
  6. <!-- 定義版本 --> 
  7. <tlib-version>1.0</tlib-version> 
  8. <!-- 定義名字 --> 
  9. <short-name>apsliyuan</short-name> 
  10. <!-- 定義uri --> 
  11. <uri>http://my.oschina.net/aps</uri> 
  12. <tag> 
  13. <name>loginTokenTag</name> 
  14. <tag-class>cn.itcast.apsliyuan.tag.LoginTokenTag</tag-class
  15. <body-content>JSP</body-content> 
  16. </tag> 
  17. </taglib> 

4. jsp中的代碼:

 

 
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" 
  2. pageEncoding="UTF-8"%> 
  3. <%@taglib uri="http://my.oschina.net/aps" prefix="aps" %> 
  4. <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
  6. <html> 
  7. <head> 
  8. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
  9. <title>index.jsp</title> 
  10. </head> 
  11. <body> 
  12. <form action="${pageContext.request.contextPath}/server/Login" method="post"
  13. <aps:loginTokenTag/> 
  14. <input type="submit" value="Login"/> 
  15. </form> 
  16. </body> 
  17. </html> 

5. 防止亂碼的攔截器:

 

 
  1. package cn.itcast.apsliyuan.filter; 
  2. import java.io.IOException; 
  3. import javax.servlet.Filter; 
  4. import javax.servlet.FilterChain; 
  5. import javax.servlet.FilterConfig; 
  6. import javax.servlet.ServletException; 
  7. import javax.servlet.ServletRequest; 
  8. import javax.servlet.ServletResponse; 
  9. import javax.servlet.http.HttpServletRequest; 
  10. import javax.servlet.http.HttpServletResponse; 
  11. public class UncodeFilter implements Filter { 
  12. public void init(FilterConfig filterConfig) throws ServletException { 
  13. // TODO Auto-generated method stub 
  14. System.out.println("攔截完成"); 
  15. public void doFilter(ServletRequest req, ServletResponse res, 
  16. FilterChain chain) throws IOException, ServletException { 
  17. HttpServletRequest request=(HttpServletRequest) req; 
  18. HttpServletResponse response=(HttpServletResponse) res; 
  19. request.setCharacterEncoding("UTF-8"); 
  20. response.setContentType("text/html;charset=UTF-8"); 
  21. chain.doFilter(request, response); 
  22. public void destroy() { 
  23. // TODO Auto-generated method stub 

6. web.xml中的配置:

 

 
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  3. xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
  5. id="WebApp_ID" version="2.5"
  6. <display-name>Tag</display-name> 
  7. <welcome-file-list> 
  8. <welcome-file>index.html</welcome-file> 
  9. <welcome-file>index.htm</welcome-file> 
  10. <welcome-file>index.jsp</welcome-file> 
  11. <welcome-file>default.html</welcome-file> 
  12. <welcome-file>default.htm</welcome-file> 
  13. <welcome-file>default.jsp</welcome-file> 
  14. </welcome-file-list> 
  15. <servlet> 
  16. <servlet-name>loginServlet</servlet-name> 
  17. <servlet-class>cn.itcast.apsliyuan.web.servlet.LoginServet</servlet-class
  18. </servlet> 
  19. <servlet-mapping> 
  20. <servlet-name>loginServlet</servlet-name> 
  21. <url-pattern>/server/Login</url-pattern> 
  22. </servlet-mapping> 
  23. <filter> 
  24. <filter-name>UncodeFilter</filter-name> 
  25. <filter-class>cn.itcast.apsliyuan.filter.UncodeFilter</filter-class
  26. </filter> 
  27. <filter-mapping> 
  28. <filter-name>UncodeFilter</filter-name> 
  29. <url-pattern>/*</url-pattern> 
  30. </filter-mapping> 
  31. </web-app> 

希望本文所述對(duì)大家的JSP程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 获嘉县| 上林县| 鲜城| 祁阳县| 涡阳县| 嘉义县| 洮南市| 焦作市| 贵溪市| 正定县| 扬州市| 准格尔旗| 石泉县| 横峰县| 彰武县| 青铜峡市| 宝丰县| 堆龙德庆县| 南汇区| 辽源市| 邯郸县| 漳平市| 鹿邑县| 农安县| 巴楚县| 周至县| 砀山县| 东明县| 怀安县| 颍上县| 灵丘县| 连州市| 黄大仙区| 浪卡子县| 宜黄县| 漾濞| 长子县| 大竹县| 南靖县| 嘉鱼县| 西丰县|