Java框架型项目从入门到装逼

此番的学科是打算用Spring,SpringMVC以及古板的jdbc技术来制作三个简易的增加和删除改查项目,对用户音讯举办增加和删除改查,就这样简单。

1.新建项目

首先,打开eclipse,新建3个web项目。项目名称就称为student,注意,新建项目标时候,因为是eclipse。所以您必要选拔Dynamic
Web Project。

点击Next。

不管,继续Next。

Finish完成。

品类的目录结构如下:

接下去,把大家须要动用的jar包全体正片进来。

当中,simple-jdbc是本人要好包裹了有的jdbc操作,可以看做是三个小型的jdbc框架,具体哪些采用会在事后讲到。

那么些jar包,有的会用到,有的恐怕用不到。现在先不管,就把他们整个正片进来。

2.集成SpringMVC

SpringMVC在本项目中起到的法力正是一个呼吁分发器,全数的呼吁,大家都由此SpringMVC来散发。打开web.xml:

image.png

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>student</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

welcome-file-list是欢迎页的布置,大家无论,在</web-app>前增进如下配置:

 <!-- 配置SpringMVC分发器 -->
     <servlet>
         <servlet-name>springmvc</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <init-param>
             <param-name>namespace</param-name>
             <param-value>spring-mvc</param-value>
         </init-param>
      </servlet>

    <servlet-mapping>
         <servlet-name>springmvc</servlet-name>
         <url-pattern>*.do</url-pattern>
     </servlet-mapping>

这和配置1般Servlet的章程是1律,当中

 <init-param>
    <param-name>namespace</param-name>
    <param-value>spring-mvc</param-value>
</init-param>

这一个布局的意趣是在创设DispatcherServlet类的时候,就把其中的八个namespace属性赋值“spring-mvc”。那个名字是我们协调定的,你能够取别的名字,也可以就叫做spring-mvc,它对应的是
WEB-INF 目录下的 spring-mvc.xml
文件。今后,大家是尚未那些文件的,所以得新建一个。

将须臾间代码拷贝进spring-mvc.xml中。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util" 
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/util 
       http://www.springframework.org/schema/util/spring-util-3.0.xsd 
       http://www.springframework.org/schema/mvc 
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
      ">

      <!-- 包扫描器 -->
      <context:component-scan base-package="com.app.*"></context:component-scan>

      <!-- 开启注解驱动,写了以后,Spring的注解机制就开始生效 -->
      <mvc:annotation-driven >
          <mvc:message-converters register-defaults="true">
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/plain;charset=UTF-8</value>
                            <value>text/html;charset=UTF-8</value>
                        </list>
                    </property>
                </bean>
                <!-- 配置Fastjson支持 -->
                <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>application/json</value>
                        </list>
                    </property>
                    <property name="features">
                        <!-- 
                            Fastjson的SerializerFeature序列化属性: 
                                QuoteFieldNames———-输出key时是否使用双引号,默认为true 
                                WriteMapNullValue——–是否输出值为null的字段,默认为false 
                                WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null 
                                WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null 
                                WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null 
                                WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null
                         -->
                        <list>
                            <value>QuoteFieldNames</value>
                            <value>WriteMapNullValue</value>
                        </list>
                    </property>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>

        <!-- 配置SpringMVC的视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/" />
            <property name="suffix" value=".jsp" /><!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        </bean>

</beans>      

第3个布局,包扫描器:

<context:component-scan base-package="com.app.*"></context:component-scan>

其一是啥意思呢,正是说,汤姆cat容器运维的时候,会去扫描com.app下边全数的包和类,假使是符合供给的类,就new一下,装进Spring的bean工厂。

我们先把相应的目录结创设起来:

然后,建一个controller包:

那样1来,这一个controller正是以后会被围观的指标。未来,我们在其间新建二个ViewController类。

代码:

package com.app.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ViewController {

    @RequestMapping("/test")
    public void test(){
        System.out.println("test");
    }

}

笔者们给那几个类打上@controller标记,到时候Sping框架就会认得他,在汤姆cat服务器运行的时候就new出这些类,放到Spring的bean工厂中。

@RequestMapping的意义是呼吁路径。

至于那三个标志,作者在 那篇小说
中已经做了详尽的辨证,在此就不再赘言。接着,大家能够去发表大家的连串了。

即使您还不会用eclipse和tomcat发表web项目,就看一下
Tomcat的设置配置与JavaWeb入门教程
。小编在那边就不详细说了。

运维tomcat,打开浏览器,在地点栏输入:
http://localhost/student/test.do
回车,能够看到在控制台打字与印刷出了test字样:

image.png

这就证实,流程已经走通了。注意,因为自个儿本地tomcat配置的端口号是80,所以直接写localhost,不须要写localhost:80了。还有,为啥前边跟test.do?那是因为我们在布署Spring分发器的时候就规定了,只拦截全体
*.do 的请求。

<!-- 配置SpringMVC分发器 -->
     <servlet>
         <servlet-name>springmvc</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
         <init-param>
             <param-name>namespace</param-name>
             <param-value>spring-mvc</param-value>
         </init-param>
      </servlet>

      <servlet-mapping>
         <servlet-name>springmvc</servlet-name>
         <url-pattern>*.do</url-pattern>
     </servlet-mapping>

本章就到此处,先撤了。

本身要下载源码

发表评论

电子邮件地址不会被公开。 必填项已用*标注