发表于: 2017-08-18 23:35:41

3 1051


今天完成的事情:

网上找了教程先学一下SpringMVC,先跑个HelloWorld

首先IDEA里建一个maven web项目

选这个webapp,之后输入组名,项目名,完成

pom文件里导入springMVC需要用到的依赖

需要好多个,目前还不知道都有什么用

<artifactId>spring-aop</artifactId>
<artifactId>spring-beans</artifactId>
<artifactId>spring-core</artifactId>
<artifactId>spring-context</artifactId>
<artifactId>spring-web</artifactId>
<artifactId>spring-webmvc</artifactId>
<artifactId>spring-oxm</artifactId>
<artifactId>spring-tx</artifactId>
<artifactId>spring-context-support</artifactId>

然后写了一下web.xml

<servlet>
 <servlet-name>springDispatcherServlet</servlet-name>
 <servlet-class>
   org.springframework.web.servlet.DispatcherServlet
</servlet-class>
   <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:springmvc.xml</param-value>
   </init-param>
 <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
 <servlet-name>springDispatcherServlet</servlet-name>
 <url-pattern>/</url-pattern>
</servlet-mapping>

配置DispatcherServlet的初始化参数,配置上springmvc配置文件的名称和位置

springmvc配置文件

<!-- 配置自动扫描的包 -->
<context:component-scan base-package="com.atguigu.springmvc"></context:component-scan>

<!-- 配置视图解析器:如何把handler方法返回值解析为实际的物理视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="prefix" value="/WEB-INF/views/"></property>
   <property name="suffix" value=".jsp"></property>
</bean>

这里prefix是视图解析器的解析方式,通过prefix+返回值+后缀可以得到实际的物理视图,然后转发出去

写个HelloWorld类

@Controller
public class HelloWorld {

@RequestMapping("/helloworld")
public String hello(){
System.out.println("hello world");
       return "success";
   }
}

@Controller就是表示这个类是个控制器

@RequestMapping请求,指定可以处理哪些url请求

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>Title</title>
</head>
<body>
<a href="helloworld">Hello World</a>
</body>
</html>

用了个超链接<a href="...">...</a>

在/WEB-INF/views下写个success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>Title</title>
</head>
<body>
<h4>Success Page</h4>
</body>
</html>

这个是输出的结果

然后配置好Tomcat,运行一下

弹出来一个网页

点一下链接

显示出来写的内容了。

之后深入看了一下@RequestMapping

在控制器的类定义及方法定义处都可标注
@RequestMapping
类定义处:提供初步的请求映射信息,相对于WEB应用的根目录
方法处:提供进一步的细分映射信息,相对于类定义处的URL,若类定义处未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录
DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法
@RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法、请求参数及请求头映射请求
@RequestMapping的value、method、params及heads分别表示请求URL、请求方法、请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求映射更加精确化。
params和headers支持简单的表达式:
param1:表示请求必须包含名为param1的请求参数
!param1:表示请求不能包含名为param1的请求参数
param1!=value1:表示请求包含名为param1的请求参数,但其值不能是value1
{“param1=value1”,“param2”}:请求必须包含名为param1和param2的两个请求参数,且param1参数的值必须为value1

在helloworld都试了一下各种用法

<body>

<form action="/myRequest/testMethod" method="post">
   <input type="submit" value="submit"/>
</form>

<br><br>

<a href="/myRequest/testMethod">666</a>
<br><br>

<a href="/myRequest/helloworld">不错不错</a>

<br><br>
<a href="helloworld">Hello World</a>

<br><br>
<a href="/myRequest/testParams?name=good&age=21">╮(╯_╰)╭</a>


</body>

最终出来的效果是这样的

调试了一番都能正确打出信息了

看了一些HTML的东西,感觉应该是前段需要学的,都是一些语言规范

关于submit和button,submit可以提交表格,button就只是个按钮

POST,用于向指定的URI传送更新资源
举个例子,在我们的支付系统中,一个api的功能是创建收款金额二维码,它和金额相关,每个用户可以有多个二维码,如果连续调用则会创建新的二维码,这个时候就用POST
PUT,用于向指定的URI传送更新资源,是幂等的
还是那个例子,用户的账户二维码只和用户关联,而且是一一对应的关系,此时这个api就可以用PUT,因为每次调用它,都将刷新用户账户二维码。比如一个接口用于用户生成,接收的数据是用户名、密码等相关信息,则用POST

明天计划的事情:

可以的话写一下rest接口,或者继续看springmvc

遇到的问题:

不能从整体上理解SpringMVC构架的实现过程,网上写的太笼统了,具体的东西又太具体了,完全靠自己理解

收获:

作为一个零基础学java不到半个月的人,真心觉得基础实在太重要了。我基本是用到什么去百度或者书上翻什么,很多东西都只是看个大概,没有深入理解,因为也没有那个时间让我停在一个小知识点上。导致现在看东西,需要不停的回顾之前学过的知识点,就比如今天看配置文件,发现log4j又不会打了,回去又看了一遍,跟没学过一样..

看老大在知乎上和人喷,讨论修真院教出来的学员行不行,培训班出身到底好不好。我突然发现,学习这种事情还真是全看自己。我们不能因为不写日报扣分而写日报,不能因为时间短任务紧就忽略了基础知识的学习。只有自己知道自己到底学会了什么,写日报也不是给别人看而是给自己看的。

这些日子以来我的学习态度确实是有问题的,所有问题都只追求速度,不求甚解,用完就忘。做完了任务一,发现大部分代码都只是当时做的时候查了看了写了,现在再看又忘了。我想我这个样子大概会成为那个人口中说的培训出来的人吧,撑不过实习期的。

需要改变了。因为我就是为了改变自我而来到修真院的,不然就算学完离开修真院的时候,我可能也会后悔。


返回列表 返回列表
评论

    分享到