• Java基础-SSM之Spring MVC入门篇


                      Java基础-SSM之Spring MVC入门篇

                                             作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

    一.Spring MVC简介

    1>.什么是Spring MVC

      答:SpringMvc是spring的一个模块 基于MVC的一个框架 无需中间整合层来整合。MVC表示的全称为:Model(模型),view(视图),controller(控制器)。

    2>.Spring MVC关键组件说明

     1 1>.前端控制器 DispatcherServlet(不需要程序员开发)
     2   作用 : 接收请求、响应结果 相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。
     3 2>.处理器映射器HandlerMapping(不需要程序员开发)
     4   作用 : 根据请求的URL来查找Handler。
     5 3>.处理器适配器HandlerAdapter
     6   作用 : 按照特定的规则(HandlerAdapter要求的规则)去执行Handler。注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler
     7 4>.处理器Handler(需要程序员开发)
     8 5>.视图解析器 View Resolver(不需要程序员开发)
     9   作用 : 进行视图的解析 根据视图逻辑名解析成真正的视图(view)
    10 6>.视图View(需要程序员开发jsp)
    11   作用 : View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf。。。)

    3>.Spring MVC执行流程

     

    二.idea进行web程序开发

    1>.创建模块,添加web project支持

     

    2>.引入Maven依赖

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <project xmlns="http://maven.apache.org/POM/4.0.0"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     5     <modelVersion>4.0.0</modelVersion>
     6 
     7     <groupId>cn.org.yinzhengjie</groupId>
     8     <artifactId>SpringMVC</artifactId>
     9     <version>1.0-SNAPSHOT</version>
    10 
    11 
    12     <dependencies>
    13         <dependency>
    14             <groupId>org.springframework</groupId>
    15             <artifactId>spring-webmvc</artifactId>
    16             <version>4.3.5.RELEASE</version>
    17         </dependency>
    18         <dependency>
    19             <groupId>javax.servlet</groupId>
    20             <artifactId>servlet-api</artifactId>
    21             <version>2.5</version>
    22         </dependency>
    23     </dependencies>
    24 
    25 
    26 </project>
    pom.xml 文件内容

     

    3>.配置web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     5          version="3.1">
     6     <servlet>
     7         <servlet-name>dispatcher</servlet-name>
     8         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     9     </servlet>
    10     <servlet-mapping>
    11         <servlet-name>dispatcher</servlet-name>
    12         <url-pattern>/</url-pattern>
    13     </servlet-mapping>
    14 </web-app>
    web.xml文件内容

    4>.编写控制器类

     1 /*
     2 @author :yinzhengjie
     3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
     4 EMAIL:y1053419035@qq.com
     5 */
     6 package cn.org.yinzhengjie.springmvc.web.controller;
     7 
     8 import org.springframework.stereotype.Controller;
     9 import org.springframework.web.bind.annotation.RequestMapping;
    10 
    11 @Controller
    12 @RequestMapping("/home")
    13 public class HomeController {
    14 
    15     @RequestMapping("/m1")
    16     public String m1(){
    17         System.out.println("m1");
    18         return "yinzhengjie" ;
    19     }
    20 }

    5>.安装tomcat

      我已经下载好了Tomcat绿色版(链接:https://pan.baidu.com/s/1_fTB5tX0JMUtErI-s0_Ofg 密码:bow5),我们解压就完成了Tomcat的安装。

    6>.idea下配置tomcat

      点击设置按钮,就是图中的小扳手,如下:

      点击添加Tomcat Server,如下图所示:

      选择Tomcat的安装目录即可,如下图:

       点击ok,完成配置,如下图所示:

      添加Tomcat服务器:

      配置Tomcat服务器环境:

      配置指定端口:

     点击Project Structure按钮,如下图:

    添加依赖库,如下图:

    7>.编辑JSP配置文件

     1 <%--
     2   Created by IntelliJ IDEA.
     3   User: Administrator
     4   Date: 2018/7/12 0012
     5   Time: 下午 2:20
     6   To change this template use File | Settings | File Templates.
     7 --%>
     8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     9 <html>
    10   <head>
    11   </head>
    12   <body>
    13         <h1>尹正杰到此一游!!!</h1>
    14   </body>
    15 </html>
    index.jsp 文件内容
      1 <%--
      2   Created by IntelliJ IDEA.
      3   User: Administrator
      4   Date: 2018/7/12 0012
      5   Time: 下午 3:15
      6   To change this template use File | Settings | File Templates.
      7 --%>
      8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      9 <!DOCTYPE html>       <!--Doctype告诉浏览器使用什么样的html或xhtml规范来解析html文档。html这种模式兼容浏览器是最好的-->
     10 <html lang="en">
     11 <head  name="尹正杰" age="25">  <!--标签的开头,其里面的内容(name="尹正杰")是标签的属性,其属性可以定义多个。-->
     12     <meta charset="UTF-8"/>     <!--指定页面编码,我们称这种标签类型为自闭和标签,因为我们需要在标签的结尾写上“/”,为了方便我们识别标签类型。-->
     13     <meta http-equiv="refresh" content="5; Url=http://www.cnblogs.com/yinzhengjie/"> <!--这是做了一个界面的跳转,表示30s不运行的话就跳转到指定的URL-->
     14     <title>尹正杰的个人主页</title> <!--定义头部(标签)的标题-->
     15     <meta name="keywords" content="开发者,博客园,开发者,程序猿,程序媛,极客,编程,代码,开源,IT网站,Developer,Programmer,Coder,Geek,技术社区" /> <!--“content”定义关键字,其作用就是让浏览器通过搜索关键字时,会匹配该网站,这就是说如果你没有单独给百度钱的话,这些关键字就尤为重要啦!-->
     16     <meta name="description" content="博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。" />  <!--定义描述字符,其作用就告诉客户你的这个网站是干嘛使用的。-->
     17     <link rel="shortcut icon" href="https://baike.baidu.com/pic/%E9%82%93%E7%B4%AB%E6%A3%8B/6798196/0/d1a20cf431adcbef011db9bba6af2edda3cc9f66?fr=lemma&ct=single#aid=0&pic=d1a20cf431adcbef011db9bba6af2edda3cc9f66" type="image/x-icon" /> <!--定义头部图标-->
     18     <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <!--这个是IE的浏览器生效的规则,如果你用的是谷歌,360等浏览器的话,这行规则不生效,如果你用的是IE浏览器的话,表示用IE最新的引擎去渲染HTML-->
     19 </head> <!--标签的结尾,结合该标签的开头,这种标签类型我们称之为主动闭合标签。-->
     20 <body>
     21 <h1>尹正杰</h1><!--定义文件的内容,其中“h1”标签中-->
     22 <h2>尹正杰</h2>
     23 <h3>尹正杰</h3>
     24 <h4>尹正杰</h4>
     25 <h5>尹正杰</h5>
     26 <h6>尹正杰</h6>
     27 <h1>You are a good boy!</h1>
     28 <div style=" 4000px">  <!--是其缩进代码的父级标签,给其定义宽度属性是200像素大小-->
     29     <h1>尹正杰</h1><!--块级标签:也叫父级标签,即自己单独占了一行空间,或者说是占它父级标签的100%。作用:定义文件的内容-->
     30     <h1>You are a good boy!</h1>
     31 </div>  <!--div的标签的结尾-->
     32 <p>素胚勾勒出青花笔锋浓转淡<br/>瓶身描绘的牡丹一如你初妆<br/>冉冉檀香透过窗心事我了然<br/>宣纸上走笔至此搁一半<br/>釉色渲染仕女图韵味被私藏<br/>而你嫣然的一笑如含苞待放</p> <!--其中<br/>表示换行符的意思,<p></p>表示一个段落的意思。-->
     33 <a>yinzhengjie</a> <!--内联标签,以a开头的标签都是内联标签,这些标签的内容时连接在一起的。:-->
     34 <a>2017</a>
     35 <a href="http://www.cnblogs.com/yinzhengjie/" target="_blank">尹正杰博客</a>  <!--a标签特有的性能,重定向,通过href属性定义需要跳转的网站,通过target="_blank"表示新打开一个标签页并打开新的URL地址-->
     36 
     37 <a href="#Y1">Golang第一章</a>  <!--a标签特有的性能,做锚,找ID为"Y1"的标签并跳转过去-->
     38 <a href="#Y2">Golang第二章</a>  <!--找ID为"Y2"的标签-->
     39 <a href="#Y3">Golang第三章</a>  <!--找ID为"Y3"的标签-->
     40 
     41 
     42 
     43 <div id="Y1" style="height:700px;background-color:antiquewhite">  <!--用id来定义标签为"Y1"(一般要具有唯一性,即尽量不要让标签的id的值相同),用style来定义高度为700像素,颜色用background-color来定义。-->
     44     Golang进阶之路Day1<br/>
     45     Go语言官方自称,之所以开发Go 语言,是因为“近10年来开发程序之难让我们有点沮丧”。 这一定位暗示了Go语言希望取代C和Java的地位,成为最流行的通用开发语言。博客地址:http://www.cnblogs.com/yinzhengjie/p/6482675.html
     46 </div>
     47 
     48 <div id="Y2" style="height:700px;background-color:rebeccapurple;">
     49     <br/>Golang进阶之路Day2<br/>
     50     前者大家应该都很熟悉,因为我在上一篇(http://www.cnblogs.com/yinzhengjie/p/6482675.html)关于GO的博客中用"go build"命令编译不同的版本,但是在这里我们还是要演示一下go build的花式用法。博客地址:http://www.cnblogs.com/yinzhengjie/p/7000272.html
     51 </div>
     52 
     53 <div id="Y3" style="height:700px;background-color:brown;">
     54     Golang进阶之路Day3<br/>
     55     当然我这里只是介绍了Golang的冰山一角,对Golang感兴趣的小伙伴,可以看一下Golang官网的文档说明。毕竟官方才是最权威的,给出国内地址:https://golang.org/pkg/!博客地址:http://www.cnblogs.com/yinzhengjie/p/7043430.html
     56 </div>
     57 
     58 <!--功能最少的标签,最纯洁的易于加工的标签,即他们没有“h1”和"a"标签那么多的属性。-->
     59 <div>我是块标签</div>
     60 <span>我是内联标签</span>    
     61 
     62 <!--列表-->
     63 <ul>    <!--打印字符穿前面带个小黑点-->
     64     <li>菜单一</li>
     65     <li>菜单二</li>
     66     <li>菜单三</li>
     67 </ul>
     68 
     69 <ol>  <!--打印字符串前面有数字标识-->
     70     <li>第一章</li>
     71     <li>第二章</li>
     72     <li>第三章</li>
     73 </ol>
     74 
     75 <ol>
     76     <dd>北京</dd>  <!--自带缩进,可以用于写新闻的标题-->
     77     <dt>朝阳区</dt>
     78     <dt>亦庄经济开发区</dt>
     79     <dt>丰台区</dt>
     80     <dt>海淀区</dt>
     81     <dd>河北</dd>
     82     <dt>石家庄</dt>
     83     <dt>保定</dt>
     84     <dd>陕西</dd>
     85     <dt>西安</dt>
     86     <dt>安康</dt>
     87 </ol>
     88 
     89 
     90 <!--表格-->
     91 <table border="1">   <!--定义一个表格,其属性是border="1",表示加边框的意思。-->
     92     <thead>    <!--定义表头信息-->
     93     <tr>   <!--'tr'表示定义一行的数据,里面的内容由子标签<th></th>实现-->
     94         <th>姓名</th>    <!--'th'定义同一行每一列的内容,也就是说只要带有这个标签的且在其父标签"tr"标签中就是写的同一行内容。-->
     95         <th>年龄</th>
     96         <td>性别</td>
     97     </tr>
     98     </thead>
     99     <tbody> <!--定义表格的内容-->
    100     <tr>  <!--'tr'表示每一行的数据,其定义的是行的操作。-->
    101         <td>尹正杰</td> <!--td用来定义当前行的每一列的内容,与thead中的'th'用法相同。只不过'th’有加粗效果!-->
    102         <td>25</td>
    103         <td>boy</td>
    104     </tr>
    105     <tr>  <!--'tr'表示每一行的数据-->
    106         <td>尹正杰</td> <!--‘<td></td>’标签定义的是列的操作-->
    107         <td colspan="2">26</td>     <!--注意,'td'标签的colspan属性表示向右占锯的空间,我们给的值是“2”,就表示会从当前列往后在占一个列,共计当前行的两列空间!-->
    108     </tr>
    109     <tr>  <!--'tr'表示每一行的数据-->
    110         <td>yinzhengjie</td> <!--‘<td></td>’标签定义的是列的操作-->
    111         <td rowspan="2">26</td>     <!--注意,'td'标签的rowspan属性表示向下占据的空间,我们这里给的是还是“2”,即从当前行的当前列,向下扩充空一列内容。-->
    112     </tr>
    113     <tr>  <!--'tr'表示每一行的数据-->
    114         <td>yinzhengjie</td> <!--‘<td></td>’标签定义的是列的操作-->
    115         <td >26</td>     <!--表示这个'td'标签占两列的空间-->
    116     </tr>
    117     </tbody>
    118 </table>
    119 </body>
    120 </html>
    yinzhengjie.jsp 文件内容

     

    8>.启动Tomcat服务器

    9>.查看webUI内容

      查看index.jsp 文件内容

      查看yinzhengjie.jsp文件内容

      此时,查看服务端有打印数据,如下:

  • 相关阅读:
    活动安排问题
    喵哈哈村的魔法考试 Round #5 (Div.2) C
    梯度下降,牛顿法 ,高斯牛顿法
    SSD模型解析
    训练较深的卷积神经网络时遇到的问题
    手写体识别
    Fast Patch-based Style Transfer of Arbitrary Style 理解
    多任务学习
    迁移学习(训练数据少的可怜时的办法)
    通过训练得出的结果修改模型
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/9299239.html
Copyright © 2020-2023  润新知