java学习
使用springmvc开发crm
如题,由于项目中总是需要和后台的数据打交道,但我们的外包看起来已经不想和我们有更多的合作了(也相信他们是真的太忙了吧)
现在项目里的内容也基本也什么大的需求,所以想先试着把以前学过的java开发后台的知识实际应用一下~如果做得出demo的话让同事他们看看这样的能不能用吧,不行的话也没关系,反正就当练手了
安装idea
网上官方直接下载最终版(看官方的说明不用这个版本的话好像基本和实际项目的需求无缘了)
然后就是激活,激活的话这里也不多说了
新建springwep项目
在新建的时候点击maven,然后找到apache的springwebapp,我记得以前说过maven里有两个springwebapp的,记得不要创建错了
然后就是导入依赖
这里需要注意一下,maven导入的依赖基本都是jar包,虽然每个都不大,但是抗不出数量多啊,所以个人建议还是在一开始就先定好maven导入依赖的路径,不放在c盘就是怕内存爆了
这里很简单,在你需要的路径里新建一个setting.xml文件
然后添加下面这个帖子里的代码就可以了
https://blog.youkuaiyun.com/weixin_45852922/article/details/120412785
反正我是直接复制使用的,没出什么问题
帖子里的建议是和仓库同个路径即可
然后新建项目就好了
这里我是因为一开始没有定好maven的setting.xml和仓库的路径导致在添加依赖的时候一直报红,所以查了一下解决方案,这里进行解释
如果出现了Terminated with exit code 1这个报红的话试试直接在项目里面右键maven里的reload project就好了
搭建环境
pom
搭建之后的层级是这样的
从下往上吧
pom是导入依赖的文件
只要你的maven的setting.xml和仓库的路径没问题,这里在引用依赖的时候一般都是没问题的
目前需要的依赖分别是springmvc,springapp以及servlet
在下面的build里可以先删掉新建的时候自带的plguinsmanager标签的内容
然后添加
上面的内容,箭头指的意思是当项目完成之后去访问的话需要带着这个路径去访问
web.xml
太多了直接贴吧
这里主要是对数据编码格式进行设定
以及servlet相应的配置
给我的个人感觉就是对请求的路径进行过滤(毕竟内容都是在filter里的)
需要满足设定的条件才能访问
比如这里设定的是所有过来的路径都是utf-8的编码格式
以及请求的时候需要在后面添加.do
哦还有一个重要的,配置servlet-context.xml文件
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app id="webApp_ID" version="3.0"
xmlns = "http://java.sun.com/xml/ns/javaee"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
>
<display-name>Archetype Created Web Application</display-name>
<filter>
<description>char encoding filter</description>
<filter-name>encodingFilter</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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
jsp
这个就是存放你写好的网页的文件的
在里面新建你的jsp网页就好了
servlet-context.xml
这个需要自己创建,创建之前需要先在main路径下创建一个recources的文件,将他标记为资源文件(recources root),意味着资源的存放都在这里
也意味着classpath:的这个标签就是在这个recources文件的路径下的内容
所以把servlet-context.xml放在这里就可以被classpath读取访问到了
直接贴吧…
这里的意义给我的感觉是在web.xml后对访问的格式啥的进一步进行和设置
你比如说直接能看到的web-inf和.jsp
这些都是路径和网页后缀
意味着在发送请求的时候用户不用自己填写这些内容,交给程序自动在这些路径下进行访问和添加后缀
哦还有在这里需要添加能够识别注解的标签
这样才能识别到注解并且不会报错
还有就是注册了具体的代码,能够调用里面的方法
友情提醒:下面贴的代码里xmlns的那些配置信息一定要按照顺序填写,不然是会有问题的~
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
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">
<context:component-scan base-package = "com.xxxx.springmvc.controller"></context:component-scan>
<mvc:annotation-driven/>
<bean id="defaultViewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name = "viewClass" value = "org.springframework.web.servlet.view.JstlView"/>
<property name = "contentType" value = "text/html"/>
<property name = "prefix" value = "/WEB-INF/jsp/"/>
<property name = "suffix" value = ".jsp"/>
</bean>
</beans>
java
在main下新建一个java,右键标记为source root,然后在这个目录下新建一个包命名和绗棉注册的时候写的一样就好了,xxx的部分可以自定义~
然后编写一个controller类,在这个类里写一个测试代码
@Controller
public class HelloController {
@RequestMapping("hello")
public ModelAndView hello(){
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("hello","helloworld");
modelAndView.setViewName("hello");
return modelAndView;
}
}
第一个注解是把这个类当做controller的注解,这样请求过来的时候就是先找到这个类
第二个注解就是具体的网页名称
添加了这个注解的方法需要返回一个modelandview对象,这个对象里存放了你需要传过去的数据和视图
然后在你写好的网页里去获得这个数据对象就可以啦~
jsp网页
然后设置一下maven发布的信息
command line里记得写jetty:run
不然build了之后就停了,不跑的话是访问不到的
访问
最后在网页上输入访问路径即可
localhost:8080/项目名/具体的网页名称.do
代码基本来源:
https://www.bilibili.com/video/BV1kX4y1F7km?p=4
过程其实有一些小问题,不过可能是之前学过一次加上前段时间在as和unity里的一些代码积累和bug的修复,遇到的时候基本一些就能解决
比如访问的时候出现了找不到路径的bug,这个就需要看你设置的访问路径里是不是少了/或者多了/或者大小写没有统一之类的
以上,后面的在看看mvc模式,然后基本就可以直接开工搞实战了~