Spring MVC 模式
springMVC模式在Spring2.5X以后的版本里就有了该功能
1。新建项目、导入相关的jar包(spring官方下载)
2。配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 使用Spring dispatcherServlet 分发请求 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring.xml</param-value>
</init-param>
<!-- 加载级别 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
在这里要说明一下 由于使用了spring的DispatcherSergvlet 因此你的 <servlet-name>dispatcherServlet</servlet-name> 叫什么 就要在你的root/下创建一个dispatcherServlet-servlet.xml文件
3。页面
<%@ 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">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<p>用户登录</p>
<form action="login.do" method="post">
Username: <input type="text" name="username"/><br/>
Password: <input type="password" name="password"/><br/>
<input type="submit" value="OK" /><input type="reset" value="NO">
</form>
</body>
</html>
4.bean
public class LoginForm implements Serializable{
private String username;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
}
5 Action(controller)
package net.xiaxin.action;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import test.LoginForm;
public class LoginAction extends SimpleFormController {
private String fail_view;
private String success_view;
@Override
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command,
BindException exception) throws Exception {
// TODO Auto-generated method stub
LoginForm login=(LoginForm)command;
if(log(login)==0){
HashMap map=new HashMap();
map.put("login", login);
List list=new LinkedList();
list.add("msg1");
list.add("msg2");
list.add("msg3");
map.put("message", list);
return new ModelAndView(this.getSuccess_view(),map);
}
else{
return new ModelAndView(this.getFail_view());
}
}
private int log(LoginForm login) {
if("chenboning".equalsIgnoreCase(login.getUsername())&&"123456".equalsIgnoreCase(login.getPassword())){
return 0;
}
return 1;
}
public String getFail_view() {
return fail_view;
}
public void setFail_view(String fail_view) {
this.fail_view = fail_view;
}
public String getSuccess_view() {
return success_view;
}
public void setSuccess_view(String success_view) {
this.success_view = success_view;
}
}
6.spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 视图 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.JstlView</value>
</property>
<property name="prefix">
<value>/WEB-INF/JSP/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<!-- Mapping -->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/login.do">loginAction</prop>
</props>
</property>
</bean>
<!-- Http Servlet -->
<bean id="loginAction" class="net.xiaxin.action.LoginAction">
<property name="commandClass">
<value>test.LoginForm</value>
</property>
<property name="fail_view">
<value>loginfail</value>
</property>
<property name="success_view">
<value>success</value>
</property>
</bean>
</beans>
7。创建页面(WEB-INF/JSP/)
创建两个jsp文件success.jsp、loginfail.jsp