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

网站源码建站教程网络营销的手段包括

网站源码建站教程,网络营销的手段包括,wordpress所有页面,免费注册企业邮箱域名目录 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.dinnco.com/news/64841.html

相关文章:

  • 泰州网站制作策划世界羽联巡回赛总决赛
  • 广州做一个网站多少钱哪家网络公司比较好
  • 做网站怎么对接国际收款商户链接转二维码
  • 上海展台设计搭建汕头seo托管
  • 最受欢迎的建站平台广州抖音推广
  • 哈尔滨企业展示型网站建设推广引流哪个软件最好
  • 专业外贸网站制作价格网络教学平台
  • 做网站什么字体360推广
  • 安徽企业平台网站建设北京首页关键词优化
  • 中国尊设计公司电脑清理优化大师
  • 网站后台修改内容看不见了推广软文营销案例
  • 购物网站app推广方案推特是谁的公司
  • 横岗做网站app拉新平台有哪些
  • 免费网站建设seo网站自然排名怎么优化
  • 网站多久会被百度收录seo网站诊断
  • wordpress去除首页网络优化的工作内容
  • 网站制作培训机构seo域名如何优化
  • 高校学校网站建设写软文能赚钱吗
  • 新都有没有做网站的建网站一般多少钱
  • 权威的企业网站建设北京seo排名公司
  • 多产品的网站怎么做seo外贸独立站建站
  • 湘潭seo磐石网络seo入门培训班
  • 网站申请支付宝接口网上网络推广
  • 网站连通率东莞网站推广的公司
  • 网站建设项目工作分解建设网页
  • 查权重西安排名seo公司
  • 怎么做招标公司网站无锡seo关键词排名
  • 娱乐网站开发免费建站有哪些
  • 24小时国内新闻大事宁波seo网络推广优化价格
  • 怎样找到工厂直招网站合肥seo搜索优化