spring web application

尝试使用spring + idea + gradle 做一下web的工程

1.使用jetty_run.sh在linux下启动服务。

2.允许在idea中使用remote调试,调试端口为54001 。

3.本地访问地址根目录为 http://localhost:53001/hang535/ 。

 

通过:

http://localhost:53001/hang535/servlet 可以访问原生servlet请求

http://localhost:53001/hang535/spring/hi 可以访问spring mvc框架下的请求 (只JSP部分,Velocity还在研究ing)

 

 

project

 

build.gradle

 1 //========================================
 2 // 命令 $gradle build
 3 //========================================
 4 
 5 // 插件
 6 apply plugin: 'java'
 7 apply plugin: 'idea'
 8 apply plugin: 'war'
 9 apply plugin: 'jetty'
10 
11 // 编译java源码的jdk版本
12 sourceCompatibility = 1.6
13 
14 // 生成class文件的jdk版本
15 targetCompatibility = 1.6
16 
17 // 仓库
18 repositories {
19     mavenRepo urls: ["http://xxx/nexus/content/groups/public/"]
20 //    maven {
21 //        url "http://xxx/nexus/content/groups/public/"
22 //    }
23 }
24 
25 // 版本号
26 version = '0.1.0'
27 
28 // gradle在编译时支持utf8编码
29 [compileJava, javadoc, compileTestJava]*.options*.encoding = 'UTF-8'
30 
31 // 项目依赖
32 dependencies {
33 
34     // runtime 配置项中包含的依赖在运行时是必须的
35     // testCompile 配置项中包含的依赖,在编译测试代码时是必须的
36     // testRuntime 配置项中包含的依赖,在运行测试代码时是必须的
37     // archives 配置项中包含项目生成的文件(如jar文件)
38     // default 配置相中包含运行时必须的依赖
39     // providedCompile 编译时不会用到,运行时会用到
40 
41     testCompile(
42             [group: 'junit', name: 'junit', version: '4.11'],
43             [group: 'org.unitils', name: 'unitils-dbunit', version: '3.4.2'],
44             [group: 'org.springframework', name: 'spring-test', version: '3.0.5.RELEASE']
45     )
46 
47     compile(
48             [group: 'javax.servlet', name: 'servlet-api', version: '2.5'],
49             [group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.13'],
50             [group: 'log4j', name: 'log4j', version: '1.2.17'],
51             [group: 'com.ibatis', name: 'ibatis', version: '2.3.4.726'],
52             [group: 'com.oracle', name: 'ojdbc', version: '6.0'],
53             [group: 'org.springframework', name: 'spring-context', version: '3.0.5.RELEASE'],
54             [group: 'org.springframework', name: 'spring-web', version: '3.0.5.RELEASE'],
55             [group: 'org.springframework', name: 'spring-webmvc', version: '3.0.5.RELEASE'],
56             [group: 'org.apache.velocity', name: 'velocity', version: '1.7'],
57             [group: 'org.apache.velocity', name: 'velocity-tools', version: '2.0']
58     )
59 
60 }
61 
62 // web应用中的jetty配置
63 // 使用gradle jettyRun 运行
64 // 使用http://localhost:53001/hang535 访问
65 jettyRun {
66     contextPath = '/hang535'
67     scanIntervalSeconds = 1
68     reload ="automatic"
69 }
70 httpPort = 53001
71 stopPort = 53002
72 stopKey = 'hang535'

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
         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_2_5.xsd ">

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-servlet.xml</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/spring/*</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>servlet</servlet-name>
        <servlet-class>com.h.servlet.SampleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>servlet</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>

</web-app>

 

spring-servlet.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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/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.xsd
               http://www.springframework.org/schema/mvc
               http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--<mvc:resources mapping="/resources/**" location="/resources/" />-->

    <context:component-scan base-package="com.h.controller" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp" />
        <property name="contentType" value="text/html; charset=UTF-8" />
    </bean>

</beans>

 

hello.jsp & hi.jsp

<!DOCTYPE HTML>
<html>
<head>
    <title>Spring Web Test Application</title>
</head>
<body>
<h1>Hello, ${name}</h1>
</body>
</html>

 

Controller

package com.h.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;

@Controller
//@RequestMapping({"/"})
public class SampleController {

    @RequestMapping(value="/hi", method = RequestMethod.GET)
    public String loadHiPage(Model m) {
        m.addAttribute("name", "my friend!");
        return "hi";
    }

    @RequestMapping(value="/hello", method = RequestMethod.GET)
    public String loadHelloPage(Model m, HttpServletRequest request) {
        String requestURI = request.getRequestURL().toString();
        m.addAttribute("name", requestURI);
        return "hello";
    }

    @RequestMapping(value="/response", method = RequestMethod.GET)
    public void loadHelloPage(HttpServletRequest request, HttpServletResponse response) {
        OutputStream stream = null;
        try {
            String requestURI = request.getRequestURL().toString();
            stream = response.getOutputStream();
            stream.write(requestURI.getBytes("UTF-8"));
        } catch (IOException e) {
            e.printStackTrace();
            if(null != stream){
                try {
                    stream.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
    }

}

 

servlet

 1 package com.h.servlet;
 2 
 3 import javax.servlet.http.HttpServlet;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6 import java.io.IOException;
 7 import java.io.OutputStream;
 8 
 9 /**
10  * Created by yuhang535 on 2016/2/19.
11  */
12 public class SampleServlet extends HttpServlet {
13 
14     @Override
15     protected void service(HttpServletRequest request, HttpServletResponse response) {
16         OutputStream stream = null;
17         try {
18             String requestURI = request.getRequestURL().toString();
19             stream = response.getOutputStream();
20             stream.write(requestURI.getBytes("UTF-8"));
21         } catch (IOException e) {
22             e.printStackTrace();
23             if(null != stream){
24                 try {
25                     stream.close();
26                 } catch (IOException e1) {
27                     e1.printStackTrace();
28                 }
29             }
30         }
31 
32     }
33 }

 

jetty_run.sh

# !/bin/bash

#To remote debug the application with port 54001
export GRADLE_OPTS="-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=54001"

gradle clean
gradle jettyRun

 

posted on 2016-02-19 14:39  没事瞎折腾  阅读(264)  评论(0编辑  收藏  举报

导航