为了方便包的管理,使用web工程模板方式创建一个Maven工程(这里使用的开发工具为IDEA)
1、搭建web开发测试环境,使用jetty作为服务器(也可以使用Tomcat),只需要在maven的pom.xml中的<build></build>标签中加入以下内容,接着import maven changes,然后build工程,并采用jetty:start方式启动服务器,这时就能访问index.jsp首页
<plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.6.10.v20130312</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <!-- <webApp> <contextPath>/test</contextPath> </webApp> --> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>9090</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> <stopPort>9091</stopPort> <stopKey>foo</stopKey> </configuration> </plugin> </plugins>
2、struts2的使用
(1)jar包下载:struts2主要用于MVC分离,表单(form action=“”)提交时控制器会将请求转交给对应的Action(extends ActionSupport),为了使用struts2,需要导入对应的jar包,在maven的配置文件pom.xml中加入以下内容:
<!-- struts2依赖包 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.14</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> </dependency>
(2)使用struts2:这时可以使用struts2了,为了使用struts2,需要配置web工程中的web.xml文件,告诉工程要使用框架,在web.xml中加入以下内容:
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
(3)struts2配置文件:该配置文件主要配置action到class的map映射,这样在前端只需要填写action名称,struts2就知道交给哪个类来处理,首先创建struts.xml文件,放置在类源码根路径下,配置如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 支持动态调用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <!-- 设置开发模式 --> <constant name="struts.devMode" value="false"/> <!-- 添加struts2-spring整合的插件 --> <!--<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />--> <constant name="struts.objectFactory" value="spring" /> <package name="front" namespace="/" extends="struts-default"> <action name="login" class="com.mz.action.LoginAction" method="login"> <result name="success">/index.jsp</result> <result name="login">/login.jsp</result> </action> </package> </struts>
(4)前端使用action:首先创建前端页面login.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登录界面</title> </head> <body> <form action="login" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="username" /> </td> </tr> <tr> <td>密码:</td> <td><input type="text" name="password" /> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="登录" /> <input type="reset" value="重置" /> </td> </tr> </table> </form> </body> </html>
(5)定义action类:这里的form表单submit时将发出post请求,在服务器端交给login这个action来处理,根据strut.xml配置文件该action对应LoginAction,所以我们创建该类:类定义如下:
package com.mz.action; import com.mz.service.ILoginService; import com.opensymphony.xwork2.ActionSupport; import org.apache.struts2.ServletActionContext; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.UnsupportedEncodingException; /** * Created by hadoop on 15-9-7. */ public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; public String execute(){ return SUCCESS; } public String login() throws IOException { try { HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println(username + ":" + password); if("admin".equals(username) && "123456".equals(password)){ response.getWriter().write("login success!"); response.getWriter().flush(); return SUCCESS; } else { response.getWriter().write("login failed!"); response.getWriter().flush(); return "login"; } } catch (UnsupportedEncodingException e) { e.printStackTrace(); return "login"; } } }
这个时候rebuild工程,restart jetty,然后访问localhost:9090/login.jsp,输入用户名和密码即可
(6)<welcome-file>失效,每次访问需要输入完整路径,否则会报匹配不到action的错误,为了避免这个问题可以在struts配置文件中增加如下内容:
<package name="front" namespace="/" extends="json-default"> <default-action-ref name="login" /> <action name="login"> <result name="success">/login.html</result> </action>
即当输入网址localhost:9090时,默认使用login.action处理,跳转到登录页面
相关内容
(1)Web开发:Struts2 Spring Hibernate整合(二)——Spring的使用
相关推荐
比较流行的一本书,在公司内很受欢迎 比较实用 下半部分,需与上半部分放在一起解压。
以下章节源码[03] [04] [05] [08] [10] [11] [12] [13] [14] [15] [16]
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,很不容易。 不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发
本项目“学生成绩管理系统”就是基于Struts2、Spring和Hibernate三大主流Java Web框架进行整合的一个实例。这样的整合能够充分利用各框架的优势,实现模型-视图-控制器(MVC)架构,提供数据持久化、业务逻辑处理...
精通Java EE:Eclipse Struts2 Hibernate Spring整合应用案例代码和数据库压缩包6
精通Eclipse整合Web开发——Struts,Spring,Hibernate,JBPM 图书馆下载的,不是很清晰,如果介意的,请不要下载,不要拍砖。 总共有三部分。
以国内使用最广泛的Struts为例,其新版本Struts2与前一版Struts1.x已经有了天壤之别。Hibernate也从2.0升级为3.X,近期Spring也最新推出了2.5版。读者如果再参考以前的版本书籍学习,无异于南辕北辙,而《JavaWeb...
收集的Java Web整合开发实战:基于Struts 2+Hibernate+Spring-源代码,看到其他人下载币要的太多,给大家分享一下。 不是很全,但可以拿来参考了。 由于大小限制,还有另外一个包······
Java Web整合开发实战--基于Struts 2+Hibernate+Spring.pdf 1章 Web的工作机制 2章 搭建Java Web开发环境 3章 JSP及其相关技术 2篇 表现层框架Struts技术 4章 Struts快速上手 5章 解密Struts之核心文件 6章 ...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2作为MVC框架处理请求和展示,Spring提供依赖注入和事务管理,Hibernate则作为ORM框架处理数据库操作。将这三个框架整合在...
学习Spring Struts Hibernate 整合开发必看的书
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
J2EE 企业应用实战:Struts Spring Hibernate 整合开发.part2
总的来说,"最新项目系统:Struts2+Spring4+Hibernate4三大框架整合"为学习和实践Java Web开发提供了一个实用的平台,对于提升开发者的技术水平和项目经验具有极大的帮助。通过深入研究和实践,开发者可以掌握Java ...
J2EE 企业应用实战:Struts Spring Hibernate 整合开发 文件过大``分2部分 此为Part2