0
点赞
收藏
分享

微信扫一扫

Spring MVC简单使用 注解 与 非注解

灵魂跑者 2023-03-10 阅读 110


Spring的使用第一步导入相关的jar包

Spring MVC简单使用 注解   与  非注解_mvc


第一步:在web.xml中配置前端控制器 , 就是找到某个controller.xml了通过classpath:。。.xml

<!-- Spring MVC的配置 前端控制器   -->
<!-- 前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<!-- contextConfigLocation指定Springmvc的全局配置文件
如果contextConfigLocation不指定,默认找配置文件名称:servlet的name+"-servlet.xml"+
-->
<!-- 表示初始化开始加载哪一个xml文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:controller.xml</param-value>
</init-param>
<!-- 加载的优先级 -->
<load-on-startup>1</load-on-startup>
</servlet>

第二步 : 配置cotroller.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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">

<!-- 配置Handler -->
<!-- 游览器访问的路径 spring容器加载 -->
<bean id="FirstController1" name="/firstController" class="com.itheima.controller.FirstController" />

<!-- 处理器映射器,将处理器Handle的name作为url进行查找 class干类一定要继承Controller就是指定beanname的url -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- 简单url映射器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- 对itmesCon他roller1进行url隐射 url是 /firstController1-->
<prop key="/firstController1"><!-- controller的bean id -->FirstController1</prop>
<prop key="/firstController2">FirstController1</prop>
</props>
</property>
</bean>




<!-- 处理器适配器,配置对处理器中handleRequest()方法的调用 就是调用实现了Controller类的handlerRequest()方法-->
<!-- 处理器适配器 所有处理器适配器多要实现HandlerAdapter 他的要求 : 是Handler要实现Controller接口-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

<!-- 另外一个适配器 -->
<!-- 他的要要求是要: Handler实现HttpRquestHandler接口 -->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>




<!-- 视图解析器
解析jsp解析,默认使用jstl标签
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />

</beans>


第三步 : 创建一个实现Controller接口    有两种方式实现  一个是实现Controller接口另外一个是实现HttpRequestHandler接口

public class FirstController implements org.springframework.web.servlet.mvc.Controller{

@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//返回的ModelAndView对象
ModelAndView view=new ModelAndView();
//该方法就等于request.getSession.setAttribute(key,value) 如果使用他的话就可以在页面中使用调用
view.addObject("user", new UserBean());
//设置URL路径 意思就是指定视图
view.setViewName("页面的路径");
return view;
}
}


第三步 : 创建一个实现HttpRequestHandler接口

public class FirstController implements HttpRequestHandler{

@Override
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//传输数据 就是设置数据模型
request.setAttribute("user", new UserBean());
//设置请求转发 就是重定向 请求转发 还有一个是 response.sendRedirect("跳转的路径");
request.getRequestDispatcher("请求路径").forward(request, response);
}
}


使用非注解

​ ​​​​ <!-- 使用注解 配置 -->​​​​ <!-- 注解映射器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> <!-- 注解适配器 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>​

<!-- 
使用mvc:annotation-driven 代替上边注解映射器和注解适配器
mvc:annotation-driven默认加载很多的数据绑定方法
在事件开发中使用mvc:annotation-driven
<mvc:annotation-driven></mvc:annotation-driven>
-->

<!-- 开启注解扫描器 -->
<context:component-scan base-package="扫描包的路径"></context:component-scan>

实现的方法

@Controller
public class FirstController{
@RequestMapping("请求访问路径如:/login.action")
public ModelAndView login(){
ModelAndView mode = new ModelAndView();
mode.addObject("键", "对象");
mode.setViewName("请求的路径");
return mode;
}
}



举报

相关推荐

0 条评论