为了方便包的管理,使用web工程模板方式创建一个Maven工程(这里使用的开发工具为IDEA)
1、搭建web开发测试环境,使用jetty作为服务器(也可以使用Tomcat),只需要在maven的pom.xml中的
org.mortbay.jetty jetty-maven-plugin 7.6.10.v20130312 10 9090 60000 9091 foo
2、struts2的使用
(1)jar包下载:struts2主要用于MVC分离,表单(form action=“”)提交时控制器会将请求转交给对应的Action(extends ActionSupport),为了使用struts2,需要导入对应的jar包,在maven的配置文件pom.xml中加入以下内容:
org.apache.struts struts2-core 2.3.14 javax.servlet javax.servlet-api 3.0.1
(2)使用struts2:这时可以使用struts2了,为了使用struts2,需要配置web工程中的web.xml文件,告诉工程要使用框架,在web.xml中加入以下内容:
struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /*
(3)struts2配置文件:该配置文件主要配置action到class的map映射,这样在前端只需要填写action名称,struts2就知道交给哪个类来处理,首先创建struts.xml文件,放置在类源码根路径下,配置如下:
/index.jsp /login.jsp
(4)前端使用action:首先创建前端页面login.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>登录界面
(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)
/login.html
即当输入网址localhost:9090时,默认使用login.action处理,跳转到登录页面
相关内容
(1)Web开发:Struts2 Spring Hibernate整合(二)——Spring的使用
(2)Web开发:Struts2 Spring Hibernate整合(三)上——Hibernate的使用
(3)Web开发:Struts2 Spring Hibernate整合(三)下——Hibernate的使用