`
xuxiaolei
  • 浏览: 150227 次
  • 性别: Icon_minigender_1
  • 来自: 彩虹之巅
社区版块
存档分类

用JSTL实现类似Struts1的表单验证

阅读更多
java 代码
 
  1. <%@ page language="java" import="java.util.*" pageEncoding=""%>  
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  3.   
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  5. <html>  
  6.   <head> 
  7.     <title>Login</title>  
  8.       
  9.     <meta http-equiv="pragma" content="no-cache"
  10.     <meta http-equiv="cache-control" content="no-cache">  
  11.     <meta http-equiv="expires" content="0">     
  12.       
  13.   </head>  
  14.     
  15.   <body>  
  16.     <form method="post" action="<c:url value='/servlet/LoginServlet'/>">  
  17.         your name : <input type="text" name="userName" value="${requestScope.userName}"/>   
  18.             ${requestScope.errors["userName"]}<br>  
  19.         your password : <input type="password" name="password" value="${requestScope.password}"/>   
  20.             ${requestScope.errors["password"]} <br>  
  21.         <input type="submit" name="submit" value="submit"/>  
  22.         <input type="reset" name="reset" value="reset"/>  
  23.     </form>  
  24.   </body>  
  25. </html>  

java 代码
 
  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>  
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  3.   
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  5. <html>  
  6.   <head>  
  7.       
  8.     <title>Login</title>  
  9.       
  10.     <meta http-equiv="pragma" content="no-cache">  
  11.     <meta http-equiv="cache-control" content="no-cache">  
  12.     <meta http-equiv="expires" content="0">      
  13.   </head>  
  14.     
  15.   <body>  
  16.     your name is ${requestScope.userName} <br>  
  17.     your password is ${requestScope.password}  
  18.   </body>  
  19. </html>  
java 代码
 
  1. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>  
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  3.   
  4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  5. <html>  
  6.   <head>  
  7.       
  8.     <title>Login</title>  
  9.       
  10.     <meta http-equiv="pragma" content="no-cache">  
  11.     <meta http-equiv="cache-control" content="no-cache">  
  12.     <meta http-equiv="expires" content="0">      
  13.   </head>  
  14.     
  15.   <body>  
  16.     Errors message: <br>  
  17.     ${requestScope.errorMsg}  
  18.   </body>  
  19. </html>  
java 代码
 
  1. package app;  
  2.   
  3. import java.io.*;  
  4.   
  5. import javax.servlet.*;  
  6. import javax.servlet.http.*;  
  7.   
  8. import java.util.*;  
  9.   
  10. public class LoginServlet extends HttpServlet {  
  11.   
  12.     /** 
  13.      * Constructor of the object. 
  14.      */  
  15.     public LoginServlet() {  
  16.         super();  
  17.     }  
  18.   
  19.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  20.             throws ServletException, IOException {  
  21.           
  22.         if(!invalidate(request, response)) {  
  23.             RequestDispatcher dispatcher = request.getRequestDispatcher("/Login.jsp");  
  24.             dispatcher.forward(request, response);  
  25.               
  26.             return;  
  27.         }  
  28.           
  29.         if(userName.equals("xuxiaolei") && password.equals("123")) {  
  30.               
  31.             request.setAttribute("userName", userName);  
  32.             request.setAttribute("password", password);  
  33.             RequestDispatcher dispatcher = request.getRequestDispatcher("/ShowLogin.jsp");  
  34.             dispatcher.forward(request, response);  
  35.         } else {  
  36.             request.setAttribute("errorMsg""userName or password error");  
  37.             RequestDispatcher dispatcher = request.getRequestDispatcher("/ErrorMsg.jsp");  
  38.             dispatcher.forward(request, response);  
  39.         }  
  40.           
  41.           
  42.               
  43.     }  
  44.   
  45.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  46.             throws ServletException, IOException {  
  47.   
  48.         doGet(request, response);  
  49.     }  
  50.       
  51.     public boolean invalidate(HttpServletRequest request, HttpServletResponse response) {  
  52.       
  53.         boolean result = true;  
  54.         HashMap errors = new HashMap();  
  55.         setUserName(request);  
  56.         setPassword(request);  
  57.         if(userName == null || userName.length() < 1) {  
  58.             userName = "";  
  59.             errors.put("userName""User is required");  
  60.         }  
  61.           
  62.         if(password == null || password.length() < 1) {  
  63.             password = "";  
  64.             errors.put("password""Password required");  
  65.         }  
  66.           
  67.         if(errors.size() > 0) {  
  68.             request.setAttribute("userName", userName);  
  69.             request.setAttribute("password", password);  
  70.             request.setAttribute("errors", errors);  
  71.             result = false;  
  72.         }  
  73.           
  74.         return result;  
  75.     }  
  76.       
  77.     public void setUserName(HttpServletRequest request) {  
  78.         userName = (String) request.getParameter("userName");  
  79.     }  
  80.       
  81.     public void setPassword(HttpServletRequest request) {  
  82.         password = (String) request.getParameter("password");  
  83.     }  
  84.   
  85.       
  86.       
  87.       
  88.   
  89.     private String userName;  
  90.     private String password;  
  91.       
  92. }  
xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"   
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.       
  8.   <servlet>  
  9.     <description>This is the description of my J2EE component</description>  
  10.     <display-name>This is the display name of my J2EE component</display-name>  
  11.     <servlet-name>LoginServlet</servlet-name>  
  12.     <servlet-class>app.LoginServlet</servlet-class>  
  13.   </servlet>  
  14.   <servlet>  
  15.     <description>This is the description of my J2EE component</description>  
  16.     <display-name>This is the display name of my J2EE component</display-name>  
  17.     <servlet-name>PreStudentView</servlet-name>  
  18.     <servlet-class>app.PreStudentView</servlet-class>  
  19.   </servlet>  
  20.   
  21.   
  22.   <servlet-mapping>  
  23.     <servlet-name>LoginServlet</servlet-name>  
  24.     <url-pattern>/servlet/LoginServlet</url-pattern>  
  25.   </servlet-mapping>  
  26.   <servlet-mapping>  
  27.     <servlet-name>PreStudentView</servlet-name>  
  28.     <url-pattern>/servlet/PreStudentView</url-pattern>  
  29.   </servlet-mapping>  
  30.       
  31. </web-app>  
分享到:
评论

相关推荐

    struts的表单验证方式

    Struts框架是一个经典的Java Web开发框架,它遵循MVC(Model-View-Controller)模式,帮助...通过以上步骤,你可以在Struts中实现表单验证,并有效地处理中文乱码问题,确保用户输入的数据质量和应用程序的稳定性。

    jstl和struts标签

    Struts标签库提供了丰富的标签,它们可以帮助开发者轻松处理表单验证、循环、条件判断等常见的Web开发任务。 - **表单标签**:如`&lt;s:form&gt;`、`&lt;s:textfield&gt;`等,用于简化表单创建过程。 - **逻辑控制标签**:如`...

    Struts标签库jstl.jar standard.jar

    在实际应用中,`jstl.jar`和`standard.jar`通常与Struts框架一起使用,共同构建高效、可扩展的Web应用程序。它们的结合使用,可以使JSP页面更加简洁,减少Java代码的使用,提高代码的可读性和可维护性,同时也降低了...

    Struts标签 和jstl标签

    Struts标签和JSTL(JavaServer Pages Standard Tag Library)标签是Java Web开发中的两种重要组件,...深入研究“Struts标签参考.CHM”和“jstl-1_1-mr2-spec.pdf”这两个文档,将有助于你更好地理解和运用这些技术。

    struts1和struts2的区别

    - **Struts1**: 使用ActionForm来封装表单数据。ActionForm是一个JavaBean,负责验证和封装用户输入的数据。Struts1提供了丰富的标签库来辅助表单处理。 - **Struts2**: 直接使用Action来处理表单数据,不再需要...

    struts动态表单案例

    6. **异常处理**:当表单验证失败或其他错误发生时,Struts提供了异常处理机制,可以在`struts-config.xml`中配置全局或特定Action的错误页面。 7. **拦截器**:Struts的拦截器机制允许在Action调用前后添加自定义...

    jstl,struts2,spring标签库api

    例如,JSTL的`&lt;c:set&gt;`标签可以用来设置变量,`&lt;s:action&gt;`在Struts2中用于执行Action,而Spring的`&lt;form:form&gt;`可以创建带有模型绑定和验证的表单。通过深入理解这些API,开发者可以写出更优雅、更高效的代码。 总...

    struts1和struts2的区别(详细)

    - **Struts1**: 主要依赖JSP页面作为视图展示,同时支持使用JSTL标签库来简化页面逻辑。 - **Struts2**: 支持更多的视图层技术,如FreeMarker、Velocity等模板引擎。此外,Struts2还提供了一个强大的ValueStack机制...

    Struts+Servlet+jstl 图书管理

    此外,Struts还提供了国际化、异常处理、表单验证等功能,提高了代码的组织性和可重用性。 Servlet是Java平台上的服务器端组件,用于接收HTTP请求并生成响应。在图书管理系统中,Servlet可能被用来处理数据库交互,...

    JSTL_BeanUtils_Struts相关资料

    2. **BeanUtils与Struts的交互**:在Struts中,ActionForm对象通常用来接收和验证用户的输入,BeanUtils可以方便地将表单数据自动绑定到ActionForm中,减少了手动设置属性的繁琐工作。同时,通过BeanUtils,开发者...

    struts2 与 struts1的区别

    ### Struts2 与 Struts1 的核心区别 #### 一、架构设计及Action实现...综上所述,Struts2相比Struts1在架构设计、线程安全性、输入处理、表单验证等方面进行了大量的改进和优化,使得其更适合现代Web应用的开发需求。

    Struts1和Struts2的区别和对比

    表达式语言(EL)方面,Struts1使用JSTL EL,功能相对较弱,而在Struts2中,它支持更强大的OGNL,允许更灵活的对象图遍历和操作。 视图层的绑定方面,Struts1依赖标准JSP机制,而Struts2引入了ValueStack技术,使得...

    Struts2和Struts1的区别,详细点,主要说说Struts2

    - **Struts1**使用ActionForm中的方法来转换表单提交的数据到对应的Java类型,通常通过`String`类型的属性进行转换。 - **Struts2**使用OGNL表达式来进行类型转换,提供了一套更为统一且强大的转换机制,大大简化了...

    Struts2和Struts1的什么区别

    在探讨Struts2与Struts1的区别时,我们需深入理解这两个框架的设计理念、架构模式以及它们在实际应用中的表现差异。以下将从多个角度详细分析这两种流行Java Web框架的不同之处。 ### 1. **Action类的区别** #### ...

    struts1.x和struts2.x区别

    综上所述,Struts2.x相对于Struts1.x在多个方面进行了改进和优化,包括但不限于Action的实现方式、工作流程、数据绑定、视图技术以及验证机制,这些改进共同构成了Struts2.x相较于Struts1.x的优势,使其成为现代Web...

    Struts1和Struts2的区别和对比.txt

    **Struts1**主要使用标准的JSP页面作为视图层,页面上的数据展示和逻辑控制主要通过JSTL标签库来实现。 **Struts2**除了支持JSP页面外,还提供了更为强大的`ValueStack`机制,该机制能够更方便地在页面上访问数据和...

    struts1源代码

    9. **Interceptor**:拦截器是Struts1中实现AOP(面向切面编程)的重要机制,可以定义在请求处理之前和之后执行的逻辑,例如日志记录、权限检查等。 10. **Struts标签库**:Struts1提供了丰富的JSP标签,如、等,...

    Struts2和Struts1的不同

    Struts2也支持ActionForm模式,并且可以通过RichValidation和taglib来方便地实现表单验证和数据显示。 #### 六、表达式语言 **Struts1:** Struts1支持JSTL(JavaServer Pages Standard Tag Library),并且可以...

    struts2配置详解

    从 Struts1 升级到 Struts2: 1、Struts1 里使用 ActionServlet 作为控制器; Struts2 使用了一个过滤器作为控制器 2、Struts1 中每个 ...5、Struts2 在页面里使用 OGNL 来显示各种对象模型, 可以不再使用 EL 和 JSTL

Global site tag (gtag.js) - Google Analytics