求偶像来了余罪第一季百度云资源源

使用IntelliJ IDEA 14和Maven创建java web项目
使用IntelliJ IDEA 14和Maven创建java web项目
## 安装Maven
### 下载安装
去[maven官网][1]下载最新版。
解压到安装目录。
右键桌面的计算机图标,属性--&高级系统设置--&环境变量,添加`M2_HOME`的环境变量,然后将该变量加入的`PATH`中。
**注意** 必须要有`JAVA_HOME`和个环境变量,不然maven会提示错误。
![config][2]
![config][3]
![config][4]
如果想要修改maven的本地仓库位置,可以在maven的安装目录下的conf目录下的settings.xml配置文件中设置。
![config][5]
打开CMD,输入`mvn --version`,看到如下提示就说明安装成功了。
![config][6]
### 配置IntelliJ
在IntelliJ的设置中,可以设置maven的安装目录,settings.xml文件的位置,和本地仓库的位置等信息。
![IntelliJ][7]
新建maven项目,create from archetype,选择maven-archetype-webapp
![maven][8]
Next,填写GroupId,ArtifactId和Version
![maven][9]
Next,这里在Properties中添加一个参数`archetypeCatalog=internal`,不加这个参数,在maven生成骨架的时候将会非常慢,有时候会直接卡住。
来自网上的解释:
&archetypeCatalog表示插件使用的archetype元数据,不加这个参数时默认为remote,local,即中央仓库archetype元数据,由于中央仓库的archetype太多了,所以导致很慢,指定internal来表示仅使用内部元数据。
![maven][10]
Next,填写项目名称和module名称。
![maven][11]
点击Finish。
项目的目录结构如下:
![tree][12]
配置项目的JDK和language level
![config][13]
在main文件夹下新建一个java文件夹,把它设为源代码文件夹。
![config][14]
为module添加外部依赖的jar包。
![config][15]
添加tomcat的依赖是为了满足`servlet`和`jsp`依赖的,tomcat作为一个`servlet`容器提高了`servlet`和`jsp`的API。
![config][16]
![config][17]
添加jar包依赖。
![config][18]
设置artifact。
![config][19]
设置tomcat。
![config][20]
![config][21]
![config][22]
![tomcat][23]
![web][24]
[1]: http://maven.apache.org/
[2]: 1.z0./43.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:1XRvEZM3617eMd_qoIaP145q49w
[3]: 1.z0./50.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:5C7pUPCV7UvFNUrfhHFG51o767c
[4]: 1.z0./14.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:IW7_L2PDsUM8jUjWJR-X-dR-Jcs
[5]: 1.z0./04.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:BZjzLjo1jyvFjIQPpxxJjg90TKE
[6]: 1.z0./47.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:7nSMl85KYVzWVplBibSOZNE2XUQ
[7]: 1.z0./59.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:xoAahXVnOfT6WQ7g0M8HTZzI3vQ
[8]: 1.z0./.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:4DHDuqSA-aqqVZL2ToP-7ZpJwu4
[9]: 1.z0./39.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:ogUmxYsQQgdf3rA68uZWI7IYuv4
[10]: 1.z0./47.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:bfAVtk3dLctPaOCV5gxFNwcoz1E
[11]: 1.z0./55.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:FL2LEbE_LkhsgNN3F9XkWF6T7qs
[12]: 1.z0./10.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:tb1Ra30K8DAc56O0_C5WxXY8MGg
[13]: 1.z0./06.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:Qq36p9NA2tjxI1EgYb5Vn2GSq-Q
[14]: 1.z0./24.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:w3y6uQiZlUmZRmJAmfI9E54ktjg
[15]: 1.z0./44.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:Y0vo1r2iVHOd6wEH2zb7idJo37M
[16]: 1.z0./35.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:o9Vd6jSUyu3XdALnNJ5C92u2C_A
[17]: 1.z0./48.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:A71Y_CJ-3xN1sh31_m_4praGRQM
[18]: 1.z0./05.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:hvi356PNA72drN5DAKrQ6uUYU6E
[19]: 1.z0./48.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:679478Vri3aAhyUn8wauXfBns9A
[20]: 1.z0./25.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:8X5Dop_0BMo6iAkoH4N1jWVBbkk
[21]: 1.z0./57.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:T3tgvP0D0YNXHWC18ueFYn2ZE4M
[22]: 1.z0./27.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:8UDLUcy9j2tu0p7IPkQp3FI6tb0
[23]: 1.z0./00.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:7tR7fbImqm7z7JQlAyxu-D8BGRE
[24]: 1.z0./16.png?attname=&e=&token=bm0aGge7R2WSvVmK5LOvS5P0w6J5-Dt0_YCJMk1I:EgKZHwiVQO0THOlBC7_9F839iCs
上一篇: 无
41592 人读过
, 发表评论.eclipse搭建SSH框架详解 -
- ITeye技术网站
博客分类:
SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题。下面我介绍一下SSH框架搭建的全过程。 第一步:准备工作。
下载好eclipse,Struts2,Spring,Hibernate。
1.eclipse:eclipse下载的时候建议下载JavaEE版的eclipse。
当然你也可以下载eclipse-SDK。(下载eclipse-SDK需要下载Web,Tomcat等plugins)
2.Struts2:
1)引入Struts的jar包。下载 struts-*-all.zip 解压后,struts\lib目录下是struts所有的相关jar包。
其中有5个是必须的:
Commons-logging-1.0.4.jar,Freemarker-2.3.13.jar,
Ognl-2.6.11.jar,Struts2-core-2.1.6.jar,Xwork-2.1.2.jar
其余jar包并不是struts必须的。还有3个包也要注意导入。不导入运行Tomcat时候可能会出现异常。
commons-io-1.3.2.jar,commons-fileupload-1.2.1.jar,javassist-3.7.ga.jar
注意:javassist-3.7.ga.jar包是在struts2-blank-2.2.1.war示例工程中的web-inf/lib下的。
3.Spring:
还可以在eclipse下安装下载。具体步骤是这样的:
1)打开eclipse-help-Software Updates.
2) 在打开的对话框中选择上面的第二项(Available Software)。
3)点击Add Site按钮,弹出URL对话框。
4)在对话框里输入:点击OK。
5)选择sping IDE点击安装(Install)。
4.Hibernate:
5.Jdk的src.zip包导入。(当然不导入也可以。。。) 第二步:
1.创建一个 Web Progect,自己起一个喜欢的名字。
2.修改WEB-INF下的web.xml文件,增加struts2的配置。
&?xml version="1.0" encoding="UTF-8"?&
&web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="/xml/ns/javaee" xmlns:web="/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5"&
&display-name&SSHTest&/display-name&
&!-- struts Framework --&
&filter-name&struts2&/filter-name&
&filter-class&
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
&/filter-class&
&filter-mapping&
&filter-name&struts2&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&!-- welcome file --&
&welcome-file-list&
&welcome-file&index.jsp&/welcome-file&
&/welcome-file-list&
&/web-app&
3.在WEB-INF/classes目录下添加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"&
&package namespace="/" name="struts2" extends="struts-default"&
&action name="login" method="execute" class="loginAction"&
&result name="success"&/WEB-INF/jsp/login.jsp&/result&
&result name="input"&/WEB-INF/index.jsp&/result&
&/package&
4.配置Spring
1)导入spring包。spring-framework-**.zip解压后,将spring-framework-**文件夹的dist目录下的jar包导入工程中。
2)配置web.xml文件。
&!-- Spring Framework --&
&listener&
&listener-class&
org.springframework.web.context.ContextLoaderListener
&/listener-class&
&/listener&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&
classpath:/applicationContext*.xml
&/param-value&
&/context-param&
3)添加applicationContext.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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"&
&!-- Action --&
&bean id="loginAction" scope="prototype" class="action.LoginAction"&&/bean&
4)整合Spring与Struts。在Struts的lib目录中找到struts2-spring-plugin-*.jar,引入到工程中。
5.配置Hibernate
1)解压缩hibernate-distribution-*.zip。导入hibernate-distribution-*GA\lib\required目录中的jar包。
hibernate3.jar
antlr-2.7.6.jar
代码扫描器,用来翻译HQL语句
commons-collections-3.1.jar
Apache Commons包中的一个,包含了一些Apache开发的集合类,
功能比java.util.*强大
dom4j-1.6.1.jar
一个Java的XML API,类似于jdom,用来读写XML文件的
javassist-3.4.GA.jar
Javassist 字节码解释器
jta-1.1.jar
标准的JTA API。
slf4j-api-1.5.2.jar
slf4j-nop-1.5.2.jar
2)创建Hibernate配置文件。在WEB-INF/calsses目录下建立链接数据库的配置文件hibernate.cfg.xml。
(本人比较懒,公司电脑中只有Access,也懒得下载别的DBMS。所以例子是连接Access的大家将就看吧。
*注意:需要导入Access_JDBC30.jar。
hibernate.cfg.xml:
&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"&
&hibernate-configuration&
&session-factory&
&property name="connection.driver_class"&
com.hxtt.sql.access.AccessDriver
&/property&
&property name="connection.url"&
jdbc:access:///D:/workspace/SSHTest/TestDatabase.accdb
&/property&
数据库连接设置 --&
&property name="eclipse.connection.profile"&access&/property&
&property name="connection.username"&&/property&
&property name="connection.password"&&/property&
&property name="dialect"&com.hxtt.support.hibernate.HxttAccessDialect&/property&
&!-- show_sql 生成SQL语句 --&
&property name="show_sql"&true&/property&
&!-- SQL dialect 方言 --&
&property name="hibernate.dialect"&
com.hxtt.support.hibernate.HxttAccessDialect
&/property&
&!-- 添加实体类的映射文件--&
&mapping resource="Login.hbm.xml" /&
&!-- Annotation方式配置
&mapping class="entity.Login"/&
&/session-factory&
&/hibernate-configuration&
注意:单独使用Hibernate需要创建Session工厂类HibernateSessionFactory.java
(如果用Spring整合就不需要了。Spring会在applicationContext.xml中创建。)
Hibernat 对数据库的操作是通过Session来实现的,这里的session不同于页面间传递参数的session,
而是类似于JDBC中的 Connection。Session是Hibernate运作的中心,
对象的生命周期、事务的管理、数据库的存取都与session息息相关。
而Session是由HibernateSessionFactory创建的,是线程安全的,
可以让多个执行线程同时存取HibernateSessionFactory而不会有数据共享的问题,
但不能让多个线程共享一个Session。
3)Login.hbm.xml文件
&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" &
&hibernate-mapping package="包名"&
&class name="类名" table="表名"&
&id name="主键在java类中的字段名" column="对应表中字段" type="类型 "&
&generator class="主键生成策略"/&
&/hibernate-mapping&
6.Spring整合Hibernate。Spring对hibernate的Session的创建、提交、关闭的整个生命周期进行管理。
配置sessionFactory,让spring来创建Session。在applicationContext.xml中增加如下代码:
&!-- sessionFactory --&
&bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&
&property name="configLocation"&
&value&classpath:/hibernate.cfg.xml&/value&
&/property&
浏览 35181
浏览: 100558 次
来自: 杭州
[color=red][/艾丝凡的color]
[/size[align=left][/align]]wn]萨 ...什么是SSH?
SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hibernate 是对象持久化框架,其实就是实体类和数据库表建立关系,操作类就会触发相应的sql语句,可以不用写任何sql语句,完成数据库编程(引自百度知道)
SSH就是Struts + Spring + Hibernate 3个Java框架的集合,现在Java开发中常用的框架组合。用来开发后台,与前台和数据库进行数据交互。最初学这个是为了写JSP。&SSH框架搭建步骤很多,但是不难,因为MyEclipse已经帮我们做了大部分的工作,如果纯手动添加这个框架的话,那真是够复杂的了。不过涉及的知识挺多的,适合有一定基础的人。下面详细介绍一下SSH框架的搭建步骤并且解决了几个我在搭建过程中遇到的问题。事先准备工作:1.JDK这个是一切的前提,相信大家都有。没有的话下面的步骤也不用看了,先安装JDK,配置环境变量吧。JDK 7.0 下载:配置Java环境变量教程:2.MyEclipse我们主要用MyEclipse来搭建SSH, 所以这个必须有,我用MyEclipse 8.5搭建过SSH,没问题。没有的话建议下载高版本的,与时俱进嘛。汉化或者不汉化看个人习惯,我觉得中文用起来比较舒服。Myeclipse 10 下载:Myeclipse 汉化包及汉化教程:3.MySQL数据库,注意安装时设置的密码千万别忘了。MySQL详细图文安装教程:MySQL 5.5.28 下载:4.Navicat for MySQLMySQL视图化管理及开发工具,主要用他来操作MySQL。推荐安装,非必须。Navicat for MySQL v10.1.7简体中文特别版下载:5.mysql-connector-java-5.0.8-bin.jarJava连接MySQL数据库时需要用到的jar包。jar下载:6.在MySQL中新建一个表,用来测试数据我在这里准备做一个注册登录功能,所以在test里建了一个user表,表里的字段有id、username、password、nickname四个字段。nickname用来测试中文是否乱码。SQL语句:CREATE TABLE `user` (&&`id` bigint(20) unsigned NOT NULL auto_increment COMMENT 'ID',&&`username` varchar(40) character set utf8 NOT NULL COMMENT '用户名',&&`password` varchar(40)&collate utf8_unicode_ci NOT NULL COMMENT '密码',&&`nickname` varchar(40) character set utf8 NOT NULL COMMENT '昵称',&&PRIMARY KEY&&(`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户信息表';SSH框架搭建步骤:1.新建一个项目。打开MyEclipse,新建一个Web项目,起名就叫SSH吧,点击完成,若弹出提示点Yes即可。2.添加Struts框架。右键这个项目,选择MyEclipse-&Add Struts Capabilities。 在弹出的菜单中把包的路径改一下, Base package for new classes选项中的路径com.yourcompany.struts改成com.ssh.struts, 点击完成。展开WebRoot中的WEB-INF文件夹,看到目录结构如下图,证明Struts框架添加完成。3.添加Spring框架。右键这个项目,选择MyEclipse-&Add Spring Capabilities。在菜单中选择如下6个库,点击下一步。更改Folder路径,选择SSH项目WebRoot文件夹下的WEB-INF,完成。现在项目的目录结构如下,Spring框架添加完成。4.连接数据库。点击右上角的图标"打开透视图",选择MyEclipse Database Explorer。在窗口中右键-&New&新建一个数据库连接。Driver template 选择 MySQL Connector/JDriver name 起名叫testConnection URL 更改为jdbc:mysql://自己的IP地址:端口号/数据库名称User name 填写MySQL的用户名Password 填写MySQL的密码Driver JARs 点击Add JARs按钮,浏览到事先准备的Save password 选上点击Test Driver,测试结果:数据库配置正确,点击完成。双击添加的test连接,展开目录,可以发现我们事先创建的user表。5.添加Hibernate框架。右键SSH项目,选择MyEclipse-&Add Spring Capabilities。点击下一步。配置中选择第二项"Spring configuration file"。把Spring与Hibernate整合到一起,点击下一步。在菜单中选第二项"Existing Spring configuration file",点击下一步。DB Driver选择在添加Spring框架时配置的test,点击下一步。取消Create SessionFactory class?这个选项,点击完成。现在的目录结构如下,SSH框架大体搭建完成。6.测试功能。先部署一下项目,访问首页看看效果。选择窗口上方图标"Deploy MyEclipse J2EE Project to Server"-&点击add添加SSH项目-&Server选择MyEclipse Tomcat。项目部署成功。点击窗口上方图标"Run MyEclipse Servers"启动Tomcat。在浏览器中访问SSH项目地址,别忘了加上Tomcat的默认端口,8080端口。输入地址:,Tomcat会访问SSH项目WebRoot下的index.jsp。现在修改一下index.jsp中给的内容,在Body中添加"这是我的首页"。Ctrl+S保存。这里出现了一个问题,页面默认的编码为ISO-8859-1,不支持中文字符,无法保存。我们先把这个提示关掉。选择窗口-&首选项-&MyEclipse-&JSP-&Files and Editors-&JSP,把编码改为ISO 10646/Unicode(UTF-8)-&应用-&确定。编码问题是一个很常见的问题,为避免出现这类我提我们尽量将工作空间的所有编码格式统一,无论前台后台还是数据库,否则会引发许多问题,例如中文乱码。选择窗口-&首选项-&常规-&工作空间-&文本文件编码选择其他-&其他选项里选择UTF-8-&应用-&确定。这样设置后,我们的工作空间编码就比较统一了,再生成的JSP页面就是UTF-8编码格式了,能够很好的支持中文字符,不过之前生成的JSP页面编码格式要我们手动更改。把index.jsp中&%@ page language="java" import="java.util.*" pageEncoding="XXX"%& 的pageEncoding改为UTF-8,再保存页面。这时再访问&, 正确显示中文,这回没问题了。现在写个注册登录的功能来测试一下框架整合的结果。切换到MyEclipse DataBase Explorer视图,通过Spring框架的逆向工程功能把user表逆向成Java实体类。右键user表选择"Hibernate Reverse Engineering"。Java src folder 选择SSH项目下的src文件夹。Java package 填写com.ssh.user勾选前三个选项:Create POJO、Java Data Obect和Java Data Access Object。POJO类是数据库表格所对应的Java类,JDO类是MyEclipse自动生成的对数据库的一些操作,这里会封装一些常用的操作,基本上可以满足我们的各种需要了,选择下一步。Id Generator 选择 native,点击完成。此时的目录结构如下,我们可以看到系统生成了3个类,一个配置文件。User 继承自AbstractUser,是User表的实体类。UserDAO 封装了一些对数据库的常用操作。User.hbm.xml 是hibernate-mapping映射配置文件,配置了哪个映射哪个表,配置了实体类的哪个属性映射表里的哪列。如果这些东西不用hibernate生成,那么我们就要自己写,要浪费很多时间,hibernate的作用就体现出来了。现在来写测试页。打开WEB-INF文件夹下的struts-config.xml文件,切换到设计视图(design)。右键-&New-&Form Action and JSP。填写Form表单属性:Use case: loginName:loginForm在下方Form Properties中添加两个属性username: JSP input type textpassword: JSP input type password切换到JSP选项,填写JSP属性:勾选Create JSP form路径修改为/jsp/login.jsp点击完成。此时的目录结构如下,可以看到在WebRoot/jsp/下 生成了一个login.jsp页。我们查看一下现在的目录结构,并把struts-config.xml切换到Source视图,看看struts框架帮我们干了什么。可以看到目录里多了3个文件:LoginFrom.java、LoginAction.java、login.jsp。这正是我们在设计视图里选择Form,Action and JSP所配置的文件。而struts-config.xml里也相应的添加了这3个文件的映射配置信息。如果这些不用struts生成的话,就需要我们自己写,会浪费很多时间,struts的作用体现出来了。这里说一下页面请求的执行顺序:1、login.jsp用户填写了登录信息并点击了登录按钮,发送了一个请求(loginFrom.do)。2、struts会通过struts-config.xml找到相应的映射配置(Action name==loginFrom)。3、把登录表单的属性映射到loginForm.java里(bean)。4、把loginForm和mapping、request、response一起交给LoginAction处理。5、LoginAction执行完后的通过mapping找到跳转页面forward(这个下面会提到)。现在添加两个页面:登录成功页和登录失败页,实现登录后的跳转。在WebRoot/jsp/下新建两个JSP页。起名为loginSuccess.jsp和loginFail.jsp。向导信息如下:在loginSuccess.jsp页面body中添加"登录成功!&br&"。在loginFail.jsp页面body中添加"登录失败&br&"。把登录页、登录成功页、登录失败页3个页面相关联。切换到struts-config.xml的设计视图。右键login.jsp-&New-&Forward。loginSuccess:选择Local Action Forward浏览Action Path:/login填写name:loginSuccess浏览Path:/jsp/loginSuccess.jsp完成loginFail:选择Local Action Forward浏览Action Path:/login填写name:loginFail浏览Path:/jsp/loginFail.jsp完成切换到Source视图,可以看到代码如下图:Action里多了&forward name="loginSuccess" path="/jsp/loginSuccess.jsp" /&&forward name="loginFail" path="/jsp/loginFail.jsp" /&两行代码,页面跳转添加完成。现在来写具体的执行代码。打开LoginAction.java。可以看到自动生成的代码如下图:我们先不连数据库,先写一个测试的登录代码。&&&&public ActionForward execute(ActionMapping mapping, ActionForm form,&&&&&&&&&&&&HttpServletRequest request, HttpServletResponse response) {&&&&&&&&LoginForm loginForm = (LoginForm)// TODO Auto-generated method stub&&&&&&&&//获取帐号密码&&&&&&&&String username = loginForm.getUsername();&&&&&&&&String password = loginForm.getPassword();&&&&&&&&//帐号密码匹配,跳转到登录成功页&&&&&&&&if("asd".equals(username) && "asd123".equals(password)){&&&&&&&&&&&&return mapping.findForward("loginSuccess");&&&&&&&&}&&&&&&&&//不匹配,跳转到登录失败页&&&&&&&&return mapping.findForward("loginFail");&&&&}准备就绪,启动Tomcat,在浏览器中访问登录页:看到这个界面,都是英文,很不爽,不仅仅因为丑。把它改成中文的,打开login.jsp,代码如下:&%@ page language="java" pageEncoding="UTF-8"%&&%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&&%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%&&&html&&&&&&head&&&&&&&&&&title&JSP for LoginForm form&/title&&&&&&/head&&&&&&body&&&&&&&&&&html:form action="/login"&&&&&&&&&&&&&username : &html:text property="username"/&&html:errors property="username"/&&br/&&&&&&&&&&&&&password : &html:password property="password"/&&html:errors property="password"/&&br/&&&&&&&&&&&&&&html:submit/&&html:cancel/&&&&&&&&&&/html:form&&&&&&/body&&/html&改成:&%@ page language="java" pageEncoding="UTF-8"%&&%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&&%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%&&&html&&&&&&head&&&&&&&&&&title&用户登录&/title&&&&&&/head&&&&&&body&&&&&&&&&&html:form action="/login"&&&&&&&&&&&&&帐号 : &html:text property="username"/&&html:errors property="username"/&&br/&&&&&&&&&&&&&密码 : &html:password property="password"/&&html:errors property="password"/&&br/&&&&&&&&&&&&&&html:submit value="登录"/&&html:cancel value="取消"/&&&&&&&&&&/html:form&&&&&&/body&&/html&刷新一下登录页面,看看效果:登录界面汉化成功!看起来舒服多了。点击登录。这时候因为我们什么都没填,应该跳转到登录失败页面。后退,回到登录界面,填写帐号:asd密码:asd123点击登录,帐号密码和后台设置的匹配,这时候应该跳转到登录成功界面。测试完成,下面我们连接一下数据库,从数据库里取出user数据进行匹配。想操作数据库我们要先获取DAO(data access object),我们的UserDAO是hibernate生成的,关于UserDAO的配置信息写在了applicationContext.xml里。所以在用UserDAO之前要先获取applicationContext.xml。百度上查找了一下相关代码,找到了一个获取applicationContext.xml的方法。Spring框架里的ClassPathXmlApplicationContext 通过这个类可以获取到我们需要的DAO。名字和applicationContext非常像,看起来就是这个类了。测试一下这个类是否好用:把LoginAction打开,把代码改为:&&&&public ActionForward execute(ActionMapping mapping, ActionForm form,&&&&&&&&&&&&HttpServletRequest request, HttpServletResponse response) {&&&&&&&&LoginForm loginForm = (LoginForm)// TODO Auto-generated method stub&&&&&&&&//获取帐号密码&&&&&&&&String username = loginForm.getUsername();&&&&&&&&String password = loginForm.getPassword();&&&&&&&&&&&&&&&//获取用户信息&&&&&&&&ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("applicationContext.xml");&&&&&&&&System.out.println(beans);&&&&&&&&&&&&&&&//帐号密码匹配,跳转到登录成功页&&&&&&&&if("asd".equals(username) && "asd123".equals(password)){&&&&&&&&&&&&return mapping.findForward("loginSuccess");&&&&&&&&}&&&&&&&&//不匹配,跳转到登录失败页&&&&&&&&return mapping.findForward("loginFail");&&&&}重新启动Tomcat服务器,访问登录页,点击登录:
javax.servlet.ServletException: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
出现了一个错误,意思为找不到applicationContext.xml。看来我们填写的路径有问题,这个配置文件应该是从我们项目classes的根目录开始查找的,先看一下我们的项目发布后classes的路径,右键SSH项目-&属性-&Java构建路径-&源代码。可以看到我们项目发布后classes的根目录是SSH/WebRoot/WEB-INF/classes。 applicationContext.xml是这个位置的上一级,那么相对于这个路径的位置就是"../applicationContext.xml"。现在把LoginAction里的路径修改一下:&&&&public ActionForward execute(ActionMapping mapping, ActionForm form,&&&&&&&&&&&&HttpServletRequest request, HttpServletResponse response) {&&&&&&&&LoginForm loginForm = (LoginForm)// TODO Auto-generated method stub&&&&&&&&//获取帐号密码&&&&&&&&String username = loginForm.getUsername();&&&&&&&&String password = loginForm.getPassword();&&&&&&&&&&&&&&&//获取用户信息&&&&&&&&ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("../applicationContext.xml");&&&&&&&&System.out.println(beans);&&&&&&&&&&&&&&&//帐号密码匹配,跳转到登录成功页&&&&&&&&if("asd".equals(username) && "asd123".equals(password)){&&&&&&&&&&&&return mapping.findForward("loginSuccess");&&&&&&&&}&&&&&&&&//不匹配,跳转到登录失败页&&&&&&&&return mapping.findForward("loginFail");&&&&}重新启动Tomcat服务器,访问登录页,点击登录:页面不再报错,正常跳转,控制台也输出了:org.springframework.context.support.ClassPathXmlApplicationContext@14bb075: startup date [Mon Apr 22 14:26:58 CST 2013]; root of context hierarchy]路径的问题解决了,正确的获取到了配置信息,这个配置信息我们以后要经常用,并且没必要每次用的时候都把它创建出来,浪费时间,写一个全局变量保存它吧。在src下新建一个包mon,在包里新建一个类Global.java。输入代码如下:import org.springframework.context.support.ClassPathXmlApplicationCpublic class Global {&&&&&&&public static ClassPathXmlApplicationContext beans = new ClassPathXmlApplicationContext("../applicationContext.xml");&&&&&&&&&&public static Object getDAO(String daoName){&&&&&&&&return beans.getBean(daoName);&&&&}}现在来获取数据库里的数据,在user表里新增一个用户信息username=asdpassword=asd123nickname=中文不是乱码把LoginAction里的代码改为:&&&&public ActionForward execute(ActionMapping mapping, ActionForm form,&&&&&&&&&&&&HttpServletRequest request, HttpServletResponse response) {&&&&&&&&LoginForm loginForm = (LoginForm)// TODO Auto-generated method stub&&&&&&&&//获取帐号密码&&&&&&&&String username = loginForm.getUsername();&&&&&&&&String password = loginForm.getPassword();&&&&&&&&&&&&&&&//检查该用户是否存在&&&&&&&&User instance = new User();&&&&&&&&instance.setUsername(username);&&&&&&&&instance.setPassword(password);&&&&&&&&UserDAO userDAO = (UserDAO)Global.getDAO("UserDAO");&&&&&&&&List&?& list = userDAO.findByExample(instance);&&&&&&&&&&&&&&&//如果用户存在,则登录成功。&&&&&&&&if(list.size() & 0){&&&&&&&&&&&&User user = (User)list.get(0);&&&&&&&&&&&&String nickname = user.getNickname();&&&&&&&&&&&&//写入提示信息&&&&&&&&&&&&request.setAttribute("message", "您的昵称为:" + nickname);&&&&&&&&&&&&return mapping.findForward("loginSuccess");&&&&&&&&}&&&&&&&&&&&&&&&//不匹配,跳转到登录失败页&&&&&&&&return mapping.findForward("loginFail");&&&&}在loginSuccess.jsp的Body中添加一行代码:&%=request.getAttribute("message")%&&br&重新启动Tomcat服务器,访问登录页填写帐号:asd 密码:asd123 点击登录:登录功能完成,这是个SSH框架的搭建教程,这些测试功能就尽量简单了,大家别介意,下面来做注册功能。切换到struts-config.xml的设计视图,右键New-&Form,Action and JSPUse case填写registerForm Properties填写3个属性username:textpassword:passwordnickname:text点选JSP选项,勾选Create JSP form, 路径更改为/jsp/register.jsp现在把register.jsp与login.jsp关联,做注册成功和注册失败的跳转。右键struts-config.xml设计视图中的regiser.jsp-&New-&Forward。选择Local Action ForwardAction Path:/registerName:registerSuccessPath:/jsp/login.jsp完成右键struts-config.xml设计视图中的regiser.jsp-&New-&Forward。选择Local Action ForwardAction Path:/registerName:registerFailPath:/jsp/register.jsp完成struts-config.xml代码如下汉化注册页面&%@ page language="java" pageEncoding="UTF-8"%&&%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%&&%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%&&&html&&&&&&head&&&&&&&&&&title&注册页&/title&&&&&&/head&&&&&&body&&&&&&&&&&html:form action="/register"&&&&&&&&&&&&&用户名 : &html:text property="username"/&&html:errors property="username"/&&br/&&&&&&&&&&&&&密码 : &html:password property="password"/&&html:errors property="password"/&&br/&&&&&&&&&&&&&昵称 : &html:text property="nickname"/&&html:errors property="nickname"/&&br/&&&&&&&&&&&&&&html:submit value="确定"/&&html:cancel value="取消"/&&&&&&&&&&/html:form&&&&&&/body&&/html&打开RegisterAction.java文件,实现数据的插入,修改代码如下:&&&&public ActionForward execute(ActionMapping mapping, ActionForm form,&&&&&&&&&&&&HttpServletRequest request, HttpServletResponse response) {&&&&&&&&&&&&&&&//填写的注册信息&&&&&&&&RegisterForm registerForm = (RegisterForm)&&&&&&&&String username = registerForm.getUsername();&&&&&&&&String password = registerForm.getPassword();&&&&&&&&String nickname = registerForm.getNickname();&&&&&&&&&&&&&&&//检查用户名是否已被注册&&&&&&&&UserDAO userDAO = (UserDAO)Global.getDAO("UserDAO");&&&&&&&&List&?& list = userDAO.findByUsername(username);&&&&&&&&&&&&&&&//用户名已被注册,返回注册页面&&&&&&&&if(list.size() & 0){&&&&&&&&&&&&request.setAttribute("message", "该用户名已被注册");&&&&&&&&&&&&return mapping.findForward("registerFail");&&&&&&&&}&&&&&&&&&&&&&&&//插入新用户&&&&&&&&User user = new User();&&&&&&&&user.setUsername(username);&&&&&&&&user.setPassword(password);&&&&&&&&user.setNickname(nickname);&&&&&&&&userDAO.save(user);&&&&&&&&request.setAttribute("message", "注册成功,请登录:" + nickname);&&&&&&&&return mapping.findForward("registerSuccess");&&&&}打开login.jsp在body中添加一行代码&%=request.getAttribute("message")%&&br&重新启动Tomcat服务器,访问注册页输入帐号:asd2输入密码:asd123输入昵称:中文不应该是乱码点击确认页面提示:注册成功,请登录:&&&&&&D&&?&&&&&&&&&&¹&&我们期望的是"中文不应该是乱码",但它变成乱码了,很常见的一种问题。百度查了一下相关问题,原因是使用Tomcat服务器时,struts的Form提交不支持中文,于是我们需要添加一个过滤器?。在mon包下新建一个TomcatFormFilter类,代码如下:import java.io.IOEimport javax.servlet.Fimport javax.servlet.FilterCimport javax.servlet.FilterCimport javax.servlet.ServletEimport javax.servlet.ServletRimport javax.servlet.ServletRpublic class TomcatFormFilter implements Filter{&&&&//接收字符编码&&&&protected S&&&&&&&public TomcatFormFilter(){}&&&&&&&public void init(FilterConfig filterConfig) throws ServletException {&&&&&&&&//从web.xml中读取encoding值&&&&&&&&encoding = filterConfig.getInitParameter("encoding");&&&&}&&&&&&&public void doFilter(ServletRequest request, ServletResponse response,&&&&&&&&&&&&FilterChain chain) throws IOException, ServletException {&&&&&&&&if(request.getCharacterEncoding() == null && encoding != null){&&&&&&&&&&&&//设置字符集&&&&&&&&&&&&request.setCharacterEncoding(encoding);&&&&&&&&}&&&&&&&&//继续执行&&&&&&&&chain.doFilter(request, response);&&&&}&&&&&&&public void destroy() {}}拷贝这个类中注释代码部分的xml,粘贴到web.xml中重新启动Tomcat服务器,访问注册页输入帐号:asd3输入密码:asd123输入昵称:这回中文不应该是乱码了点击确定至此SSH框架的搭建全部完成
阅读(...) 评论()}

我要回帖

更多关于 余罪第一季百度云资源 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信