AbstractCommandController控制器
这个控制器可以获取页面表单中的参数。
login.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">
<html>
<head>
<base href="<%=basePath%>">
<title>login</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>
<form action="checkLogin.do" method="post" >
username: <input type="text" name="username"><br/>
password: <input type="password" name="password"><br/>
<input type="submit" value="登u24405 ">
</form>
</body>
</html>
User:
package com.cjh.model;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
LoginController:
package com.cjh.action;
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.AbstractCommandController;
import com.cjh.model.User;
public class LoginController extends AbstractCommandController {
/**
* 实现AbstractCommandController类的handle方法,第三个参数是页面表单对应的实体对象
*/
@Override
protected ModelAndView handle(HttpServletRequest request,
HttpServletResponse reqponse, Object user, BindException exception)
throws Exception {
User u = (User) user;
System.out.println("username:" + u.getUsername());
System.out.println("password:" + u.getPassword());
return null;
}
}
commServlet-servlet.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 定义控制器,该控制器直接跳转到一个页面,该控制器根据请求的url,解析出视图名,省去了视图名的配置 -->
<bean id="loginController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
<!-- 自定义的控制器 -->
<bean id="checkController" class="com.cjh.action.LoginController">
<!-- handle方法中第三个参数对应的实体对象 -->
<property name="commandClass" value="com.cjh.model.User"/>
</bean>
<!-- 定义映射器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- key中的login.do表示请求的url,loginController表示具体处理的控制器 -->
<prop key="login.do">loginController</prop>
<!-- 自定义的控制器 -->
<prop key="checkLogin.do">checkController</prop>
</props>
</property>
</bean>
<!-- 配置url解析器 -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- 视图处理类,这里使用的是JSTL -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 返回的逻辑名称的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 返回的逻辑名称的后缀 -->
<property name="suffix" value=".jsp"/>
<!-- 最后返回的url是/jsp/逻辑名.jsp -->
</bean>
</beans>
这个控制器可以获取页面表单中的参数。
login.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">
<html>
<head>
<base href="<%=basePath%>">
<title>login</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>
<form action="checkLogin.do" method="post" >
username: <input type="text" name="username"><br/>
password: <input type="password" name="password"><br/>
<input type="submit" value="登u24405 ">
</form>
</body>
</html>
User:
package com.cjh.model;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
LoginController:
package com.cjh.action;
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.AbstractCommandController;
import com.cjh.model.User;
public class LoginController extends AbstractCommandController {
/**
* 实现AbstractCommandController类的handle方法,第三个参数是页面表单对应的实体对象
*/
@Override
protected ModelAndView handle(HttpServletRequest request,
HttpServletResponse reqponse, Object user, BindException exception)
throws Exception {
User u = (User) user;
System.out.println("username:" + u.getUsername());
System.out.println("password:" + u.getPassword());
return null;
}
}
commServlet-servlet.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 定义控制器,该控制器直接跳转到一个页面,该控制器根据请求的url,解析出视图名,省去了视图名的配置 -->
<bean id="loginController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
<!-- 自定义的控制器 -->
<bean id="checkController" class="com.cjh.action.LoginController">
<!-- handle方法中第三个参数对应的实体对象 -->
<property name="commandClass" value="com.cjh.model.User"/>
</bean>
<!-- 定义映射器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- key中的login.do表示请求的url,loginController表示具体处理的控制器 -->
<prop key="login.do">loginController</prop>
<!-- 自定义的控制器 -->
<prop key="checkLogin.do">checkController</prop>
</props>
</property>
</bean>
<!-- 配置url解析器 -->
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- 视图处理类,这里使用的是JSTL -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 返回的逻辑名称的前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 返回的逻辑名称的后缀 -->
<property name="suffix" value=".jsp"/>
<!-- 最后返回的url是/jsp/逻辑名.jsp -->
</bean>
</beans>