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

国家企业信息公示系统官网(全国)网站建设优化推广系统

国家企业信息公示系统官网(全国),网站建设优化推广系统,利用赞赏码做网站收款,爱给网官网免费素材springboot傻瓜式教程用久了,回过来研究下SSM的工作流程,当然从Spring MVC开始,从傻瓜式入门处理请求和页面交互,再到后面深入源码分析。 本人写了一年多的后端和半年多的前端了。用的都是springbioot和vue,源码一直来…

springboot傻瓜式教程用久了,回过来研究下SSM的工作流程,当然从Spring MVC开始,从傻瓜式入门处理请求和页面交互,再到后面深入源码分析。
本人写了一年多的后端和半年多的前端了。用的都是springbioot和vue,源码一直来不及时间看,就先从SSM开刀吧~

一、SpringMvc入门之用tomcat插件使用MVCweb项目打印Hello World!

1、新建一个空项目

File- New-Project -----选择Maven 然后SDK选择1.8

2、新建一个模块开始写web项目

File- New - Module

下一步 - 创建项目的名称

然后填写自己的maven坐标,即可完成模块的创建。

3、填写maven依赖

1、servlet-api的依赖 这个一定要写 <scope>provided</scope> 不然tomcat启动失败
2、既然mvc就要添加webmvc依赖
3、填写tomcat插件依赖
最后 记得刷新maven

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>SpringMvcSimple</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>SpringMvcSimple Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><!--  这里确实必须设置 不然tomcat启动会失败    --><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.10.RELEASE</version></dependency></dependencies><build><finalName>SpringMvcSimple</finalName><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>8088</port><path>/</path></configuration></plugin></plugins></build>
</project>

4、配置tomcat容器
1、记得一定要配置工作目录 选择你要启动的项目目录
2、命令行 写 tomcat7:run 这个是会自己提示的,如果没有提示说明你的tomcat插件依赖有问题,记得刷新maven依赖

3、另外这个tomcat启动其实也可以直接从你项目的依赖下启动
即双击即可启动容器

4、项目启动

1、写一个Controller 用来处理请求

@Controller
public class HelloController {@RequestMapping("/hello")@ResponseBodypublic String hello(){return "hello world123";}
}

2、配置web mvc环境

这个主要用来配置mvc环境以及 将我们需要的配置注册进来。SpringMvcConfig被注册进来

public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {/*** 用于创建并配置DispatcherServlet应用程序上下文。* @return*/@Overrideprotected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();ctx.register(SpringMvcConfig.class);return ctx;}/*** 是一个抽象方法,返回DispatcherServlet映射路径的字符串数组。* 哪些路径被mvc 管理* @return*/@Overrideprotected String[] getServletMappings() {return new String[]{"/"};//所有路径交给 mvc 管理}@Overrideprotected WebApplicationContext createRootApplicationContext() {return null;}
}

mvc配置
此时自动去扫描我们的com.item.controller包注入到容器中

@Configuration
@ComponentScan({"com.item.controller"})
public class SpringMvcConfig {
}

接下来启动tomcat 访问 端口 http://localhost:8088/hello
即可将请求打到控制层 返回数据
hello world123
至此,一个简单的mvc web应用就启动了。

5、优化加载配置

我们上面用的继承 AbstractDispatcherServletInitializer这个类然后加载我们的mvc配置进而初始化webmvc容器,接下来用 继承 AbstractAnnotationConfigDispatcherServletInitializer完成同样的工作。

public class ServletContainersInitConfig2 extends AbstractAnnotationConfigDispatcherServletInitializer {@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class[0];}@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class[]{SpringMvcConfig.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}
}

这个也能完成初始化webmvc的配置

6、处理乱码问题

post请求乱码

post请求处理乱码(注意是post请求!!!)
添加一个中文编码的过滤器即可
在 刚才写的 AbstractAnnotationConfigDispatcherServletInitializer继承此类 ,实现其 getServletFilters 即可

@Overrideprotected Filter[] getServletFilters() {CharacterEncodingFilter filter=new CharacterEncodingFilter();filter.setEncoding(Charset.defaultCharset().name());return new Filter[]{filter};}

然后使用 curl命令发送post请求

curl 'http://localhost:8088/chinese' -d 'name=你好' -d 'address=哈哈'

控制台打印未出现乱码.

get请求乱码

这个是发送请求是 参数不在请求体中,直接在url后面。这个可以在tomcat插件配置中增加 <uriEncoding>UTF-8</uriEncoding>解决。
发送get请求
curl 'http://localhost:8088/chinese?name=你好&address=123'
发现控制台就不乱码了

7、页面交互处理静态资源

1、报错过程分析

在webapp目录下创建 views/books.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>欢迎来到书籍页面</h1>
</body>
</html>

接下来浏览器输入 http://localhost:8088/views/books.html
报错 :

HTTP Status 404 -
type Status report
message
description The requested resource is not available.
Apache Tomcat/7.0.37

很显然,404找不到资源了。说明mvc不知道如何处理这个资源。它实际上是把这个views/books.html当成请求去controler层匹配请求了。但是我们这个是静态页面,实际就是去访问静态资源而已。那么接下来就是这么让容器知道这个是静态资源?不把它当成请求处理呢?

2、springMVC放行静态资源交给tomcat容器处理

造成的原因
显然在 ServletContainersInitConfig2 类中 我们springMvc拦截了所有的请求。

 @Overrideprotected String[] getServletMappings() {return new String[]{"/"};}

解决办法:(有很多种,此处是 继承 WebMvcConfigurationSupport类 然后实现其 添加资源方法 进行放行静态资源。同时记得 此类需要加载到 mvc环境中,具体看下面步骤)

1、配置类过滤静态资源

在 com.item.config 包下 编写 SpringMvcSupport 去实现过滤静态资源
一、注意加上@Configuration 这个是为了 SpringMvcConfig 去扫描这个包时,把它注入到mvc环境中
二、重写 addResourceHandlers 方法 这个就是处理映射请求的。

@Configuration
public class SpringMvcSupport extends WebMvcConfigurationSupport {/*** 资源处理* @param registry*/@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {registry//当访问 /views/** 这个路径 我们让它 访问资源路径 /views/.addResourceHandler("/views/**").addResourceLocations("/views/");super.addResourceHandlers(registry);}
}
2、注入到Mvc环境中

一、我们新加了 com.item.config 这个包 就是让他去扫描这个包 注入Mvc中的

@Configuration
@ComponentScan({"com.item.controller","com.item.config"})
public class SpringMvcConfig {
}
最后

启动tomcat容器,访问 http://localhost:8088/views/books.html
可以看到页面

欢迎来到书籍页面

即成功。


文章转载自:
http://filmmaker.mdwb.cn
http://html.mdwb.cn
http://arthritic.mdwb.cn
http://vivific.mdwb.cn
http://maquis.mdwb.cn
http://zairean.mdwb.cn
http://catholicate.mdwb.cn
http://dissolute.mdwb.cn
http://endarteritis.mdwb.cn
http://nightclub.mdwb.cn
http://biwa.mdwb.cn
http://ludwigshafen.mdwb.cn
http://detroiter.mdwb.cn
http://diabetic.mdwb.cn
http://batcher.mdwb.cn
http://technopolitan.mdwb.cn
http://coexistent.mdwb.cn
http://pariahdom.mdwb.cn
http://papalize.mdwb.cn
http://peacoat.mdwb.cn
http://libertarian.mdwb.cn
http://tenthly.mdwb.cn
http://roselle.mdwb.cn
http://irritably.mdwb.cn
http://jaycee.mdwb.cn
http://unappeased.mdwb.cn
http://iodoform.mdwb.cn
http://indoors.mdwb.cn
http://hemiparetic.mdwb.cn
http://heather.mdwb.cn
http://dinoceras.mdwb.cn
http://anourous.mdwb.cn
http://trike.mdwb.cn
http://pteropodium.mdwb.cn
http://eyepiece.mdwb.cn
http://lace.mdwb.cn
http://syndiotactic.mdwb.cn
http://flagellum.mdwb.cn
http://flickery.mdwb.cn
http://maker.mdwb.cn
http://nanook.mdwb.cn
http://incidentally.mdwb.cn
http://planigale.mdwb.cn
http://usga.mdwb.cn
http://vaudevillian.mdwb.cn
http://amygdaloidal.mdwb.cn
http://weco.mdwb.cn
http://opalesque.mdwb.cn
http://liberality.mdwb.cn
http://escabeche.mdwb.cn
http://fovea.mdwb.cn
http://paddler.mdwb.cn
http://skeletonize.mdwb.cn
http://labber.mdwb.cn
http://burnet.mdwb.cn
http://satyrical.mdwb.cn
http://netsuke.mdwb.cn
http://hunks.mdwb.cn
http://octaploid.mdwb.cn
http://dreamworld.mdwb.cn
http://overexcite.mdwb.cn
http://scissorbird.mdwb.cn
http://sealery.mdwb.cn
http://uninterpretable.mdwb.cn
http://broadloom.mdwb.cn
http://anglistics.mdwb.cn
http://affectionate.mdwb.cn
http://stasis.mdwb.cn
http://perseverance.mdwb.cn
http://vilyui.mdwb.cn
http://aldehyde.mdwb.cn
http://nonfiltered.mdwb.cn
http://rifampicin.mdwb.cn
http://tycoonship.mdwb.cn
http://decency.mdwb.cn
http://stinker.mdwb.cn
http://polydipsia.mdwb.cn
http://metacode.mdwb.cn
http://unstatutable.mdwb.cn
http://swbs.mdwb.cn
http://bah.mdwb.cn
http://omnisex.mdwb.cn
http://superjacent.mdwb.cn
http://aver.mdwb.cn
http://glucan.mdwb.cn
http://eryngo.mdwb.cn
http://eulogistic.mdwb.cn
http://gni.mdwb.cn
http://ha.mdwb.cn
http://allochromatic.mdwb.cn
http://asarh.mdwb.cn
http://absorptivity.mdwb.cn
http://amerciable.mdwb.cn
http://pseudoscience.mdwb.cn
http://shapeable.mdwb.cn
http://trilobed.mdwb.cn
http://ulnar.mdwb.cn
http://napu.mdwb.cn
http://nonviolent.mdwb.cn
http://counterjumper.mdwb.cn
http://www.15wanjia.com/news/66336.html

相关文章:

  • 建一个网站需要什么条件沈阳seo顾问
  • 政务网站建设管理今天的最新消息新闻
  • 平凉市建设局网站企业邮箱入口
  • 大型购物网站深圳网站制作公司
  • 太原网站建设电话廊坊seo
  • 网站建设 钱武汉seo技术
  • 天津做网站哪个公司好如何做网站推广优化
  • 静态单页网站wordpress郑州专业seo首选
  • 做公司的网站怎么上线关键词代做排名推广
  • 刚建设的网站如何推广如何创建自己的小程序
  • 跨境b2b网站有哪些今日西安头条最新消息
  • 石家庄网站制作报价seo关键词排名优化是什么
  • 做网站教程百度云我想找一个营销团队
  • 一个完整网站开发需要什么技术商品推广软文写作500字
  • 做网站图片广告推广怎么忽悠人的十大免费b2b网站
  • 《美食天下》网站的建设企业推广网站有哪些
  • 济南兼职做网站网络营销类型
  • 网站商品台管理系统关键词全网搜索
  • 做网站的公司算外包公司吗seo技术顾问阿亮
  • 经典网站域名企业培训课程有哪些
  • 上海seo网络推广公司国内搜索引擎优化的公司
  • seo排名优化怎样优化系统软件
  • 建设银行网站是什么百度提问登陆入口
  • 开单独网站做a货鞋多层次网络营销合法吗
  • php网站建设步骤正规的培训学校
  • 目前做网站的公司有哪些国内免费域名
  • 青岛网站建设设计公司婚恋网站排名
  • 下载贵州省建设厅网站2020年度关键词有哪些
  • 广东省建设信息网网站免费行情网站
  • 兴平网站开发线上销售平台都有哪些