Spring MVC前端控制器DispatcherSelvert学习篇

DispatcherSelvert的解释

DispatcherServlet是spring的web框架(以下简称SpringWeb)中的核心servlet.“Spring的web框架——象其它web框架一样——是一个请求驱动的web框架,其设计围绕一个能将请求分发到控制器的servlet,它也提供其它功能帮助web应用开发。”

bean编写

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;
	}

}

Valiation编写

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import com.user.User;

public class Validation extends AbstractController {
	private User user; //注入User对象

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
	 //登录验证 当你用AbstractController类作为你控制器的父类时
	 //只需要改写handleRequestInternal方法,实现业务逻辑并返回ModelAndView对象
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		String username=request.getParameter("username"); //从页面获取用户名的值
		String password=request.getParameter("password"); //从页面获取密码的值

		if(username.equals(user.getUsername())&&password.equals(user.getPassword())){
			return new ModelAndView("yes"); //跳转到登录成功页面
		}else{
			return new ModelAndView("error");//跳转到登录失败页面
		}
	}

}

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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	<!--定义控制器转发视图类 -->
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix">
			<value>/</value>
		</property>
		<property name="suffix">
			<value>.jsp</value>
		</property>
	</bean>
	<!-- 为User对象属性赋值 -->
	<bean id="user" class="com.user.User">
		<property name="username">
			<value>admin</value>
		</property>
		<property name="password">
			<value>111</value>
		</property>
	</bean>
	<!-- 让bean Validation自动装配User并映射do -->
	<bean name="/l.do"  autowire="byName" class="com.validation.Validation">
		<property name="user">
			<ref local="user"/>
		</property>
	</bean>
</beans>

前缀
后缀

web.xml和applicationContext.xml文档写在Web Root下的WEB-INF下的lib下。

web.xml编写

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>12.7</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!-- 自动加载配置Spring的配置文件 -->
 <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/applicationContext.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是基于Selvert接口的,所以还要在web.xml上配置Selvert。
初始化Selvert容器。
拦截器格式。

index.jsp

<body>
		<form action="<%=request.getContextPath()%>/login.do" method="post">
			<br />
			<table width="284" height="141" border="0" align="center"
				cellpadding="0" cellspacing="1" bgcolor="#6685C5">

				<tr>
					<td width="402" bgcolor="#FFFFFF">
						<table width="274" height="123" border="0" align="center"
							cellpadding="0" cellspacing="0">
							<tr>
								<td height="35">
									<br>
									<div align="center">
										<p>

											用户名:
											<input type="text" name="username" size=16 maxLength=20 />
										</p>
										<p>&nbsp;&nbsp;&nbsp;&nbsp;码:
											<input type="password" name="password" size=16 maxLength=20 />
										</p>
									</div>
								</td>
							</tr>
							<tr>
								<td height="37" align="center">
									<input type="submit" value="登录" />
									<input type="reset" value="取消" />
								</td>
							</tr>

						</table>
					</td> 
				</tr>
			</table>
		</form>


采用post提交方式/login.do的格式会被拦截器拦截获取到表单参数,酱紫

实现页面

在这里插入图片描述
用户,密码:admin,111,配置文件也有。
在这里插入图片描述
在这里插入图片描述
获取demo链接: link.

原创文章 24 获赞 0 访问量 1241

猜你喜欢

转载自blog.csdn.net/FYM1211/article/details/105324457