<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-8  評(píng)論-20  文章-4  trackbacks-0
              就好像騎自行車(chē)去遠(yuǎn)行,最開(kāi)始的時(shí)候總是激情澎湃,到了路上越走越發(fā)現(xiàn)只是在苦苦的支撐,不過(guò)等你走完全程,看那些凝固在照片中的風(fēng)景與記憶,你只有一種感覺(jué),滿(mǎn)足。

             SSH筆記目錄

             SSH筆記一  用maven構(gòu)建項(xiàng)目(源碼下載ssim1.rar)
            SSH筆記二  整合hibernate和spring(源碼下載ssim2-maven.rar
            SSH筆記三  反向生成DAO  優(yōu)化開(kāi)發(fā)目錄(源碼下載ssim3-dao.rar
            SSH筆記四  整合struts2(源碼下載ssim4-struts2.rar
            SSH筆記五  整合Tiles2(源碼下載ssim5-tiles2.rar


            今天我們的任務(wù)是要把struts2整合到項(xiàng)目之中,當(dāng)然先看一下完成之后我們的項(xiàng)目是什么樣子,如圖


             1.  在pom.xml中添加對(duì)struts2的依賴(lài),
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation
    ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      
    <modelVersion>4.0.0</modelVersion>
      
    <groupId>net.selitech.ssim</groupId>
      
    <artifactId>ssim</artifactId>
      
    <packaging>war</packaging>
      
    <version>1.0-SNAPSHOT</version>
      
    <name>SSIM Maven Webapp</name>
      
    <description> Web application</description>
      
      
    <build>
            
    <finalName>${artifactId}</finalName>
            
    <plugins>
                
    <plugin>
                    
    <groupId>org.apache.maven.plugins</groupId>
                    
    <artifactId>maven-compiler-plugin</artifactId>
                    
    <configuration>
                        
    <source>1.6</source>
                        
    <target>1.6</target>
                        
    <encoding>UTF8</encoding>
                    
    </configuration>
                
    </plugin>
                
    <plugin>
                    
    <groupId>org.apache.maven.plugins</groupId>
                    
    <artifactId>maven-surefire-plugin</artifactId>
                    
    <version>2.4.2</version>
                    
    <configuration>
                        
    <skipTests>true</skipTests>
                    
    </configuration>
                
    </plugin>
                
    <plugin>
                    
    <artifactId>maven-war-plugin</artifactId>
                    
    <configuration>
                        
    <webappDirectory>${basedir}/src/main/webapp</webappDirectory>
                        
    <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
                    
    </configuration>
                
    </plugin>
            
    </plugins>
        
    </build>
        
        
    <dependencies>
            
    <dependency>
                
    <groupId>javax.activation</groupId>
                
    <artifactId>activation</artifactId>
                
    <version>1.0.2</version>
                
    <scope>provided</scope>
            
    </dependency>
            
    <dependency>
                
    <groupId>javax.transaction</groupId>
                
    <artifactId>jta</artifactId>
                
    <version>1.0.1B</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>javax.servlet</groupId>
                
    <artifactId>servlet-api</artifactId>
                
    <version>2.4</version>
                
    <scope>provided</scope>
            
    </dependency>
            
    <dependency>
                
    <groupId>javax.servlet.jsp</groupId>
                
    <artifactId>jsp-api</artifactId>
                
    <version>2.0</version>
                
    <scope>provided</scope>
            
    </dependency>
            
    <dependency>
                
    <groupId>javax.servlet</groupId>
                
    <artifactId>jstl</artifactId>
                
    <version>1.1.2</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>taglibs</groupId>
                
    <artifactId>standard</artifactId>
                
    <version>1.1.2</version>
            
    </dependency>
            
            
    <!-- Test Case 依賴(lài) -->
            
    <dependency>
                
    <groupId>junit</groupId>
                
    <artifactId>junit</artifactId>
                
    <version>4.5</version>
                
    <scope>test</scope>
            
    </dependency>
            
            
    <!-- spring依賴(lài) -->
            
    <dependency>
                
    <groupId>org.springframework</groupId>
                
    <artifactId>spring-jdbc</artifactId>
                
    <version>2.5.6</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>org.springframework</groupId>
                
    <artifactId>spring-orm</artifactId>
                
    <version>2.5.6</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>org.springframework</groupId>
                
    <artifactId>spring-dao</artifactId>
                
    <version>2.0.4</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>log4j</groupId>
                
    <artifactId>log4j</artifactId>
                
    <version>1.2.15</version>
            
    </dependency>
            
            
    <!-- mysql依賴(lài) -->
            
    <dependency>
                
    <groupId>mysql</groupId>
                
    <artifactId>mysql-connector-java</artifactId>
                
    <version>5.0.0</version>
            
    </dependency>
            
            
    <!-- hibernate依賴(lài) -->
            
    <dependency>
                
    <groupId>org.hibernate</groupId>
                
    <artifactId>hibernate</artifactId>
                
    <version>3.2.6.ga</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>commons-dbcp</groupId>
                
    <artifactId>commons-dbcp</artifactId>
                
    <version>1.2</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>dom4j</groupId>
                
    <artifactId>dom4j</artifactId>
                
    <version>1.6.1</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>cglib</groupId>
                
    <artifactId>cglib</artifactId>
                
    <version>2.1_3</version>
            
    </dependency>
            
    <dependency>
                
    <groupId>antlr</groupId>
                
    <artifactId>antlr</artifactId>
                
    <version>2.7.6</version>
            
    </dependency>
            
    <!-- struts2依賴(lài) -->
            
    <dependency> 
                
    <groupId>org.apache.struts</groupId> 
                
    <artifactId>struts2-core</artifactId> 
                
    <version>2.1.6</version> 
            
    </dependency> 
            
    <dependency> 
                
    <groupId>org.apache.struts</groupId> 
                
    <artifactId>struts2-spring-plugin</artifactId> 
                
    <version>2.1.6</version> 
            
    </dependency> 
                
        
    </dependencies>
        
    </project>

            2.  配置web.xml,添加struts2的過(guò)濾器
    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" 
    >

    <web-app>
    <context-param>
      
    <param-name>contextConfigLocation</param-name>
      
    <param-value>/WEB-INF/classes/application-context.xml</param-value>
     
    </context-param>
      
    <!--struts過(guò)濾器 -->
     
    <filter>
      
    <filter-name>struts2</filter-name>
      
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
     
    </filter>
     
    <filter-mapping>
      
    <filter-name>struts2</filter-name>
      
    <url-pattern>*.action</url-pattern>
     
    </filter-mapping>
     
    <!-- 加載spring配置文件 -->
     
    <listener>
      
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     
    </listener>
     
    <!-- 設(shè)置歡迎頁(yè) -->
     
    <welcome-file-list>
      
    <welcome-file>login.jsp</welcome-file>
     
    </welcome-file-list>
    </web-app>

            3.  添加struts.xml配置文件
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd"
    >
    <struts>
        
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
        
    <constant name="struts.devMode" value="false" />
        
    <constant name="struts.objectFactory" value="spring" />
        
        
    <include file="struts/user.xml"></include>
           
    </struts>
            4.  配置 user.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd"
    >

    <struts> 
        
        
    <package name="user" namespace="/user" extends="struts-default">    
            
    <action name="login" class="userAction" method="login">
                
    <result name="input">/login.jsp</result>
                
    <result name="success" type="redirect">/welcome.jsp</result>
            
    </action> 
        
    </package>
        
        
    </struts>
            5.  添加UserAction和UserManager類(lèi)
    package net.selitech.ssim.web.user;

    import java.util.Map;

    import net.selitech.ssim.dao.SsimUser;
    import net.selitech.ssim.user.UserManager;

    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionSupport;

    /**
     * 
    @author: juxuejian
     * @filename: UserAction.java
     * @date: Aug 10, 2009 , 11:10:47 PM
     * @description :
     
    */
    public class UserAction extends ActionSupport{
        SsimUser user;
        UserManager userManager;
        
        
    public String login(){
            
    if(getSession("loginedUser")!=nullreturn SUCCESS;
            
            
    try {
                
    if (getUserManager().checkLogin(user.getUserEmail(), user.getUserPassword())) {
                    
                    
    // 更新登錄次數(shù)
                    user = getUserManager().findByEmail(user.getUserEmail());
                    
    // 修正手工插入數(shù)據(jù)后導(dǎo)致int為null的問(wèn)題
                    
                    
                    
    // 將登錄用戶(hù)信息存入 session
                    setSession("username", user.getUserRealname());
                    setSession(
    "loginedUser", user);
                    
                    
                    
    return SUCCESS;
                } 
    else {
                }
            }
    catch (Exception e) {
                
    // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
    return INPUT;
        }
        
        
    public SsimUser getSessionLoginedUser() {
            SsimUser currentUser 
    = (SsimUser) getSession("loginedUser");
            
    return currentUser;
        }
        
        
    /**
         * 讀取 session 中的屬性值
         * 
    @param name
         * 
    @return
         
    */
        
    public static Object getSession(String name) {
            ActionContext ctx 
    = ActionContext.getContext();
            Map session 
    = ctx.getSession();

            
    return session.get(name);
        }
        
        
    /**
         * 向 session 設(shè)置屬性值
         * 
    @param name
         * 
    @param value
         
    */
        
    public static void setSession(Object name, Object value) {
            ActionContext ctx 
    = ActionContext.getContext();
            Map session 
    = ctx.getSession();
            session.put(name, value);
        }

        
    public UserManager getUserManager() {
            
    return userManager;
        }

        
    public void setUserManager(UserManager userManager) {
            
    this.userManager = userManager;
        }

        
    }

    package net.selitech.ssim.user;

    import java.util.List;

    import net.selitech.ssim.dao.SsimUser;
    import net.selitech.ssim.dao.SsimUserDAO;

    /**
     * 
    @author: juxuejian
     * @filename: UserManager.java
     * @date: Aug 10, 2009 , 11:10:29 PM
     * @description :
     
    */
    public class UserManager {
        SsimUserDAO ssimUserDAO;
        
        
    public boolean checkLogin(String userEmail,String password) throws Exception{
            
    // 是否存在給定用戶(hù)
            SsimUser user = findByEmail(userEmail);
            
    if (user == null) {
                
    //用戶(hù)不存在
                return false;
            }
            
    if(user != null && user.getUserPassword() !=  null && user.getUserPassword().equals(password)) {
                
    return true;
            }
            
    return false;
        }
        
        @SuppressWarnings(
    "unchecked")
        
    public SsimUser findByEmail(String userEmail){
            List
    <SsimUser> users=ssimUserDAO.findByUserEmail(userEmail);
            
    if(users != null && users.size() > 0) {
                 
    return users.get(0);
             }         
             
    return null;
        }

        
    public SsimUserDAO getSsimUserDAO() {
            
    return ssimUserDAO;
        }

        
    public void setSsimUserDAO(SsimUserDAO ssimUserDAO) {
            
    this.ssimUserDAO = ssimUserDAO;
        }

    }

            6.  在Spring的配置文件application-conten.xml中注冊(cè)action和manager
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        
    xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

        
    <import resource="beans/data-source.xml" />
        
    <import resource="beans/ssim-dao.xml" />
        
    <import resource="beans/ssim-user.xml" />
        
        
    <bean id="configurator" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            
    <property name="locations">
                
    <list>
                
    <value>/WEB-INF/ssimdb-config.properties</value>
                
    </list>
            
    </property>
        
    </bean>
        
    </beans>
    ssim-user.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        
    xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
        
        
    <bean id="userManager" class="net.selitech.ssim.user.UserManager">
            
    <property name="ssimUserDAO">
                
    <ref bean="SsimUserDAO" />
            
    </property>
        
    </bean>
        
    <bean id="userAction" class="net.selitech.ssim.web.user.UserAction">
            
    <property name="userManager">
                
    <ref bean="userManager"/>
            
    </property>
        
    </bean>
    </beans>
            7. 添加login.jsp和 welcome.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
      
    <head>
        
    <base href="<%=basePath%>">
        
        
    <title>SSIM</title>
        
        
    <SCRIPT language=javascript>
        
    function check() {
            
    var s = "";
            
    var n = document.getElementById("user.userEmail").value ? null : s+= "用戶(hù)名不能為空\(chéng)n";
            
    var p = document.getElementById("user.userPassword").value ? null : s+="密碼不能為空\(chéng)n";    
            
    if(n || p){
                alert(s);
                
    return false;
            }
    else{
                document.userLoginForm.submit();
            }
        }
    </SCRIPT>

      
    </head>
      
      
    <body>
      
    <form name="userLoginForm" action="<%=path %>/user/login.action" method=post>
      
    <table>
      
    <tr>
      
    <td>用戶(hù)名:<input id="user.userEmail" type="text" name="user.userEmail" size="15"/></td></tr>
      
    <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;碼:<input id="user.userPassword" type="password" name="user.userPassword" size="16"/></td></tr>
      
    <tr><td><input type="submit" value="登錄" onclick="return check();"/></td></tr>
      
    </table>
       
       
    </form>
      
    </body>
    </html>
    welcome.jsp
    <html>
    <body>
    <h2>登錄成功</h2>
    </body>
    </html>

            如果你輸入郵箱和密碼,點(diǎn)擊登錄看到“登錄成功”,那么恭喜你
            今天到此為止,下一次   SSH筆記五  整合Tiles2

    posted on 2009-08-11 00:29 ju 閱讀(2770) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): SSH系列

    評(píng)論:
    # re: SSH筆記四 整合struts2 2009-08-11 09:53 | 凡客誠(chéng)品
    主站蜘蛛池模板: 国产精品亚洲一区二区三区久久 | 114一级毛片免费| 亚洲午夜国产精品无码| 色天使亚洲综合一区二区| 久久国内免费视频| 老司机亚洲精品影院无码| 99免费在线视频| 亚洲国产成人a精品不卡在线| 亚洲乱色熟女一区二区三区蜜臀| 久久久久久精品免费看SSS | 亚洲啪啪免费视频| 久久青青草原亚洲AV无码麻豆| 国产特黄特色的大片观看免费视频 | 免费视频专区一国产盗摄| 99人中文字幕亚洲区| 在线观看片免费人成视频无码| 亚洲天堂中文字幕在线| 国产亚洲综合视频| 国产精品jizz在线观看免费| 中文无码亚洲精品字幕| 三年片在线观看免费观看高清电影| 久久精品国产亚洲AV香蕉| 久久国产精品免费观看| 亚洲AV中文无码字幕色三| 97超高清在线观看免费视频| 国产成人综合亚洲亚洲国产第一页 | 热re99久久6国产精品免费| 亚洲av午夜福利精品一区人妖| APP在线免费观看视频| 亚洲国产精品无码av| 特级做A爰片毛片免费看无码 | 亚洲自偷自偷精品| 免费无遮挡无码永久视频 | 亚洲丰满熟女一区二区哦| 妞干网免费观看视频| 在线亚洲高清揄拍自拍一品区| 久久WWW色情成人免费观看| 亚洲午夜无码毛片av久久京东热| 无限动漫网在线观看免费| 亚洲最大无码中文字幕| 免费涩涩在线视频网|