SpringMVC基础知识:
核心类和接口
DispatcherServlet -- 前置控制器
HandlerMapping接口 -- 处理请求的映射
HandlerMapping接口的实现类:
SimpleUrlHandlerMapping 通过配置文件,把一个URL映射到Controller
DefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上
HandlerAdapter接口 -- 处理请求的映射
AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上
Controller接口 -- 控制器
由于我们使用了@Controller注解,添加了@Controller注解注解的类就可以担任控制器(Action)的职责,
所以我们并没有用到这个接口。
ViewResolver接口的实现类
UrlBasedViewResolver类 通过配置文件,把一个视图名交给到一个View来处理
InternalResourceViewResolver类,比上面的类,加入了JSTL的支持
ModelAndView类
登录实例:
首先是配置xml:
<servlet>
<servlet-name>dipatcher</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>//是启动顺序和servlettp容器一起启动
</servlet>
<servlet-mapping>
<servlet-name>dipatcher</servlet-name>
<url-pattern>*.do</url-pattern>//拦截以.do结尾的请求
</servlet-mapping>
其中<param-value>**.xml</param-value> 这里可以使用多种写法
1、不写,使用默认值:/WEB-INF/<servlet-name>-servlet.xml
2、<param-value>/WEB-INF/classes/springMVC.xml</param-value>
3、<param-value>classpath*:springMVC-mvc.xml</param-value>
4、多个值用逗号分隔
然后配置跟上下文applocationContext.xml
<!-- efinition of View Resolver 视图解析器-->
<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>/view/</value>在当前目录下的view目录下存放视图
</property>
<property name="suffix">
<value>.jsp</value>视图均已.jsp结尾
</property>
</bean>
<!-- Request Mapping 映射响应器-->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/regAction.do">regAction</prop>//注册跳转Action
<prop key="/login.do">login</prop>//登录跳转Action
</props>
</property>
</bean>
<!-- Action Definition 控制器 -->
<bean id="regAction" class="org.lee.springmvc.demo.RegAction">
<property name="commandClass">
<value>org.lee.springmvc.demo.RegInfo</value>
</property>
<property name="error_view">
<value>error</value>
</property>
<property name="success_view">
<value>success</value>
</property>
</bean>
<!-- Action Definition 控制器 -->
login为上面视图解析器中的名字
<bean id="login" class="cn.csdn.login.LoginAction">
<property name="commandClass">
<value>cn.csdn.login.Login</value>
</property>
<property name="error">
<value>error</value>
</property>
<property name="success">
<value>loginsuccess</value>//如果成功了跳转到view目录下的loginsuccess.jsp中
</property>
</bean>
页面为:
<body>
<div align="center">
<form action="login.do" method="post">
<table>
<tr>
<td>用户名:</td>
<td> <input type="text" name="username"> </td>
</tr>
<tr>
<td>密码:</td>
<td> <input type="password" name="password"> </td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登录">
</td>
</tr>
</table>
</form>
</div>
</body>
Bean为:
package cn.csdn.login;
public class Login {
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;
}
}
Action为:
package cn.csdn.login;
import java.util.HashMap;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
public class LoginAction extends SimpleFormController{
private String error ;
private String success;
protected ModelAndView onSubmit(Object cmd,BindException ex) throws Exception
{
Login login =(Login)cmd ;
System.out.println(login.getUsername());
if(isEntity(login))
{
HashMap hm = new HashMap();
hm.put("login", login);
return new ModelAndView(this.getSuccess(),hm);
}else
{
return new ModelAndView(this.getError());
}
}
private boolean isEntity(Login login)
{
if(login.getUsername() != null && !login.getUsername().trim().equals("") && login.getPassword() !=null && !login.getPassword().trim().equals(""))
return true ;
else
return false ;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
}
分享到:
相关推荐
在`hou_job_springmvc2`或`hou_spring_mvc2`项目中,你可能会找到对应的配置文件(如`web.xml`),里面会定义DispatcherServlet的初始化参数。 2. **配置文件**:SpringMVC的配置通常在XML文件(如`servlet-context...
2、RestFul和控制器 3、转发和重定向 4、数据处理 5、JSON 6、SSM项目整合 7、Ajax 8、拦截器+文件上传下载 能学到什么:详细了解SpringMVC基础以及使用 阅读建议: 建议配合狂神教学视频使用:...
SpringMVC 是一款基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的重要组成部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。本教程将深入探讨 SpringMVC 的核心概念、配置以及实际应用。...
springmvc5-2
2. springmvc框架原理 前端控制器、处理器映射器、处理器适配器、视图解析器 3. springmvc入门程序 目的:对前端控制器、处理器映射器、处理器适配器、视图解析器学习 非注解的处理器映射器、处理器适配器 注解...
SpringMVC和MyBatis是Java Web开发中的两个核心框架,它们在构建高效、模块化的应用程序方面发挥着重要作用。SpringMVC是Spring框架的一部分,主要负责处理HTTP请求和响应,而MyBatis则是一个轻量级的持久层框架,...
SpringMVC和SQLiteJDBC是两个在Java开发中常见的组件,它们分别用于构建Web应用程序和服务端数据存储。这里我们详细探讨这两个技术以及它们如何协同工作。 **SpringMVC** SpringMVC是Spring框架的一个模块,专门...
2. **项目结构** 一个典型的SpringMVC项目会包含以下目录结构: - `src/main/java`:源代码目录,包括业务逻辑、控制器、服务等类。 - `src/main/resources`:资源配置文件,如Spring的bean配置、数据库连接配置...
2. **SpringMVC配置**:在项目中,会有一个或多个配置文件,如`DispatcherServlet-servlet.xml`,用于配置SpringMVC的核心组件,包括视图解析器、处理器映射器、拦截器等。这些配置使得SpringMVC能够识别和处理HTTP...
2. **@RequestMapping映射**: - @RequestMapping注解用于将HTTP请求映射到处理方法,可以注解在类或方法上,用于指定URL路径和HTTP方法。 - 可以通过@RequestMapping的value属性设置URL,method属性定义HTTP方法...
【SpringMVC】 SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)架构。SpringMVC通过将业务逻辑、控制逻辑和显示逻辑分离,提高了代码的可维护性和可测试性。在...
springmvc 笔记
SpringMVC是Spring框架的一个模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够清晰地分离业务逻辑、数据处理和用户界面。SpringMVC的强大之处在于其灵活性、高效性和与其他...
2. **配置SpringMVC**: 配置SpringMVC通常涉及web.xml文件中的DispatcherServlet配置、Spring MVC配置文件(如servlet-context.xml)以及组件扫描。这些配置定义了处理器映射器、视图解析器、拦截器等核心组件。 ...
2. 配置ViewResolver,如InternalResourceViewResolver,用于解析视图。 3. 配置HandlerMapping,如BeanNameUrlHandlerMapping,将URL映射到处理器。 4. 配置Controller,定义处理请求的方法。 5. 配置Multipart...
2. **Model**: 在SpringMVC中,模型通常由JavaBean对象组成,包含了业务数据。这些对象可以通过`@ModelAttribute`注解与HTTP请求参数绑定,或通过`Model`接口添加到模型中,以便在视图中使用。 3. **Controller**: ...
struts2介绍、和springmvc对比,mybatis介绍和hibernate对比
【狂神SpringMVC配套课程代码】一共8个模块,大概可以看我的博客,都是自己学配套整理的 欢迎大家作为学习SpringMVC的参考!! 下面附上狂神B站课程网址,和我的博客笔记(共8章) 狂神老师B站课程:...