当前位置: 首页 > news >正文

学广告专业我后悔了sem优化托管

学广告专业我后悔了,sem优化托管,网校系统搭建,花都网站设计目录 SpringMVC简介复习servletSpringMVC入门导包配置前端控制器编写处理器实现Contoller接口普通类加注解(常用) 路径问题获取参数的方式过滤器简介自定义过滤器配置框架提供的过滤器 springMVC向页面传值的三种方式视图解析器springMVC的转发和重定向 SpringMVC简介 1.Sprin…

目录

      • SpringMVC简介
      • 复习servlet
      • SpringMVC入门
        • 导包
        • 配置前端控制器
        • 编写处理器
          • 实现Contoller接口
          • 普通类加注解(常用)
        • 路径问题
        • 获取参数的方式
        • 过滤器简介
          • 自定义过滤器
          • 配置框架提供的过滤器
        • springMVC向页面传值的三种方式
        • 视图解析器
        • springMVC的转发和重定向

SpringMVC简介

1.SpringMVC是一个基于MVC模式的WEB/表现层框架,它解决WEB开发中常见的问题:参数接收、文件上传/下载、表单验证、国际化等等;
2.SpringMVC作为Spring框架一个非常重要的功能模块,可以与Spring无缝集成,提高开发效率;
3.Spring是一个轻量级的Java 开发框架,为了解决企业应用开发的复杂性而创建。SpringMVC以Spring框架为核心,为应用程序中的Web层(表现层)提出的一套优秀的解决方案;
4.目前很多公司都使用SpringMVC,90%的招聘单位要求熟悉使用SpringMVC;
注意:SpringMvc的功能就是之前Servlet的功能,可以理解为使用SpringMVC代替了Servlet;
在这里插入图片描述

复习servlet

见代码:
创建动态web工程 - HelloServlet - web.xml - Tomcat

HelloServlet

public class HelloServlet extends HttpServlet{@Overrideprotected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {System.out.println("进来了");}
}

web.xml

  <servlet><servlet-name>helloServlet</servlet-name><servlet-class>cn.ming.controller.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>helloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>

部署到Tomcat,浏览器访问localhost/hello

tips:
1.Target runtime:选上tomcat后就自动导入了相关jar包,不用再去lib添加相关jar包
2.Dynamic web module version:选3.0以上版本,因为支持注解,如@webservlet
3.创建动态web工程后怎么修改classes路径?
项目右键 - build path - Configure Build Path - source - 放到WEB-INF下的classes
4.为什么部署到webapp而不是部署到项目根目录?
因为WEB-INF下有看不到的classes路径,外面的java代码已编译到里面

SpringMVC入门

导包

SpringMvc是Spring的一个模块,所以要用SpringMvc需要导入Spring的jar包
在这里插入图片描述
tips:动态web工程一般导完包后会自动编译,不用手动build path

配置前端控制器

以前servlet的方式
在这里插入图片描述
现在的方式
在这里插入图片描述
前端控制器就是springMVC提供的servlet,接收所有请求但不处理请求,发给处理器即一个个方法去处理,所以需要配置前端控制器

web.xml

  <servlet><servlet-name>dispatcherServlet</servlet-name><!-- 前端控制器 人家写好的servlet --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 加载SpringMVC的核心配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springMVC.xml</param-value></init-param><!-- Tomcat启动就初始化servlet --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><!-- 请求路径 --><url-pattern>/hello</url-pattern></servlet-mapping>

springMVC.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
"></beans>
编写处理器

业务处理控制器的三种实现:
1.实现Contoller接口
2.实现HttpRequestHandler接口
3.普通类加注解(常用)

实现Contoller接口

HelloController

public class HelloController implements Controller{@Overridepublic ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {System.out.println("我是HelloController");return null;}}

springMVC.xml

<bean name="/hello.do" class="cn.ming.controller.HelloController"></bean>

web.xml

  <servlet-mapping><servlet-name>dispatcherServlet</servlet-name><!-- 请求路径 --><url-pattern>*.do</url-pattern></servlet-mapping>
普通类加注解(常用)

上面这两种太局限:方法名固定了,参数固定,返回值固定,还要实现一个接口。所以后面都用第三种

HiController

@Controller	  // 代表当前这个类就是controller 交给spring管理  不用再配置bean
//@RequestMapping("/hi")
public class HiController {@RequestMapping("/hello.do")public void handler1() {System.out.println("我回来了");}public void handler2() {}public void handler3() {}
}

springMVC.xml

	<!-- 开启扫描包路径 --><context:component-scan base-package="cn.ming.controller" />
路径问题

后缀匹配:匹配的范围太小
/*:匹配所有请求,会将css,html,jsp都匹配上,一般用在过滤器,对于restful不友好
/:匹配所有请求,最常用,不会拦截.jsp,但是会拦截静态资源(css,html,images)(/替代了tomcat中默认处理静态资源的Servlet),所以需要配置静态资源放行,但是这又会导致@RequestMapping等注解失效,所以还要加上使spring注解生效的配置

代码:
web.xml

  <servlet-mapping><servlet-name>dispatcherServlet</servlet-name><!-- 请求路径 --><url-pattern>/</url-pattern></servlet-mapping>

springMVC.xml

	<!-- 放行静态资源 --><mvc:default-servlet-handler/><!-- 使spring注解生效 @RequestMapping--><mvc:annotation-driven />

webapp下新建index.html

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h1>hello world</h1>
</body>
</html>

HiController

@Controller	  // 代表当前这个类就是controller 交给spring管理  不用再配置bean
//@RequestMapping("/hi")
public class HiController {@RequestMapping("/hello.do")public void handler1() {System.out.println("我回来了");}@RequestMapping("/hi.do")public void handler2() {System.out.println("hi.do。。");}@RequestMapping("/hei")public void handler3() {System.out.println("hei.....");}
}

启动tomcat分别测试访问页面和controller

获取参数的方式

tips:浏览器访问默认发get请求,表单可以自己选发get或post

ParamController

/*** springMVC接收参数的四种方式*/
@Controller
public class ParamController {/*** 一般不用  以前的方式* http://localhost/handler1?name=zs*/@RequestMapping("/handler1") // 请求的路径public void handler1(HttpServletRequest request){String name = request.getParameter("name");System.out.println(name);}/*** 常用   重点   类型要符合,名称要相同* http://localhost/handler2?name=ls&age=18*/@RequestMapping("/handler2") // 请求的路径public void handler2(String name,Integer age){System.out.println(name);System.out.println(age);}/*** 常用  重点   对象接收参数    * http://localhost/handler3?name=ls&age=18*/@RequestMapping("/handler3") // 请求的路径public void handler3(User user){System.out.println(user);}/*** 暂时不用   restful风格方式   * localhost:80/handler4/zs/30*/@RequestMapping("/handler4/{name}/{age}") // 请求的路径public void handler4(@PathVariable("name")String name, @PathVariable("age")Integer age){System.out.println(name);System.out.println(age);}
}

启动tomcat,浏览器访问

过滤器简介

tips:浏览器地址栏默认都是get,发post请求可以用表单指定,get请求在tomcat里自己解决了中文乱码,而post需要自己解决中文乱码
代码里每个处理器都设置字符集太麻烦,所以现在用filter过滤器

filter:过滤器
作用:乱码问题,过滤非法字符
执行时机:请求到达前端控制器之前
在这里插入图片描述
在这里插入图片描述

自定义过滤器

form.html

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="/handler3" method="post">name: <input type="text" name="name"><br/>age: <input type="text" name="age"><br/><input type="submit" value="提交"></form>
</body>
</html>

MyFilter

public class MyFilter implements Filter{//初始化方法@Overridepublic void init(FilterConfig arg0) throws ServletException {}//处理具体的内容@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {System.out.println("filter。。。。。。");// 处理乱码问题req.setCharacterEncoding("utf-8");// 放行chain.doFilter(req, resp);}//销毁方法@Overridepublic void destroy() {}}

web.xml

  <filter><filter-name>myFilter</filter-name><filter-class>cn.ming.filter.MyFilter</filter-class></filter><filter-mapping><filter-name>myFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

浏览器访问

配置框架提供的过滤器

web.xml

  <!-- 我们用框架提供的支持UTF-8编码的过滤器 --><filter><filter-name>characterEncoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><!--强制指定字符编码,即使request或response设置了字符编码,也会强制使用当前设置的,任何情况下强制使用此编码--><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>
springMVC向页面传值的三种方式

方式一:
DataController

@Controller
@RequestMapping("/data")
public class DataController {/*** 向页面传值方式一:  不常用。。。*/@RequestMapping("/handler1")public ModelAndView handler1(){		ModelAndView mv = new ModelAndView();// 向request域存值mv.addObject("name","tom");mv.addObject("age",30);		// 跳转到页面mv.setViewName("/WEB-INF/views/data.jsp");return mv;}/*** 向页面传值方式二: 常用*/@RequestMapping("/handler2")public String handler2(Model model){// 向request域存值model.addAttribute("name", "王天霸");model.addAttribute("age", "40");return "/WEB-INF/views/data.jsp";}/*** 向页面传值方式三 : 常用*/@RequestMapping("/handler3")public String handler3(Map<String,Object> map){// 向request域存值map.put("name", "力很弱");map.put("age", 60);return "/WEB-INF/views/data.jsp";   //返回页面}
}

data.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>${name}<br/>${age}
</body>
</html>
视图解析器

视图解析器:把页面的前后缀配置起来,后面就都只需要简写

springMVC.xml

 	<!-- 视图解析器  prefix+return+suffix = /WEB-INF/views/data.jsp --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"></property><property name="suffix" value=".jsp"></property>	</bean>

DataController

	/*** 向页面传值方式三 : 常用*/@RequestMapping("/handler3")public String handler3(Map<String,Object> map){// 向request域存值map.put("name", "力很弱");map.put("age", 60);return "data";   //返回页面}
springMVC的转发和重定向

DataController

	/*** 转发和重定向* 使用forward(转发)和redirect(重定向)都不会走视图解析器,但它们之间的区别还是存在*/@RequestMapping("/handler4")public String handler4(){// 默认是转发   走视图解析器// return "data";// 不走视图解析器   forward:转发// return "forward:/index.html";// 不走视图解析器   redirect:重定向return "redirect:/index.html";}

在这里插入图片描述

http://www.dt0577.cn/news/30913.html

相关文章:

  • 什么是网站死链微信裂变营销软件
  • 企业电商网站优化百度开户流程
  • 做海鲜批发去哪个网站品牌服务推广
  • 做网站的公司应该税率多少百度有免费推广广告
  • 织梦做网站需要钱吗网站怎么让百度收录
  • 网站添加搜索旺道seo软件
  • 网站软件有哪些企业营销
  • 网站空间的选择seo虚拟外链
  • 摄影网站功能设计西安快速排名优化
  • 网站类别页面怎么做cpv广告联盟
  • 做网站的网页设计用cdr吗小吃培训机构排名前十
  • 重庆网站建设的价格低百度官网入口链接
  • 家装设计网站怎么做信息流广告素材网站
  • 国内vps做网站备案站长之家怎么用
  • wordpress主题制作实例做seo推广公司
  • 建设安全协会网站国外推广渠道平台
  • 孟州网站开发app好看的网站模板
  • 新型h5网站建设如何做营销策划方案
  • 哪些网站可以免费做h5sem是什么职业
  • 个人能接做网站的活么软文素材
  • wordpress 百度主动推送seo监控系统
  • 织梦做的网站首页打不开百度下载2021新版安装
  • 去哪里找人做网站优化设计三年级上册答案
  • 建设项目验收公示网站宁波网站推广优化公司怎么样
  • 经营性网站备案条件开封网站优化公司
  • 网站建设 软件开发武汉seo推广优化公司
  • 帆客建设网站app推广赚钱平台
  • 做新网站都需要准备什么成都seo优化公司排名
  • 求大神帮忙做网站如何加入广告联盟赚钱
  • 做淘宝好还是自建网站好优化网站找哪家