搭建一个最简单的JavaWeb应用,编译器是IntelliJ IDEA,web框架用的是Spring,前端模板是velocity,包管理工具是maven,代码版本管理工具是git,github地址:https://github.com/Spinach37/spinach.git
一、核心代码
1、web/pom.xml
添加org.apache.commons、javax.servlet、org.springframework、org.apache.velocity、logback、slf4j等依赖。
2、web.xml
配置ContextLoaderListener,监听web请求,创建ApplicationContext;配置DispatcherServlet,进行请求分发,初始化SpringMVC配置。
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3、mvc-dispatcher-servlet.xml
自动扫描包的配置和注解配置,初始化velocity模板的配置。
<!-- 自动扫描的包名 -->
<context:component-scan base-package="com.song.spinach.web" />
<!-- 默认的注解映射的支持 -->
<beans:annotation-driven />
<context:annotation-config/>
<bean id="velocityConfig"
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/views/"/>
<property name="configLocation" value="/WEB-INF/conf/velocity.properties"/>
</bean>
<bean id="velocityViewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="contentType" value="text/html;charset=UTF-8"/>
<property name="prefix" value=""/>
<property name="suffix" value=".vm"/>
</bean>
4、Controller
默认页面和一个测试页面。
@RequestMapping(value = "/status",produces = "text/html;charset=UTF-8")
@ResponseBody
public ModelAndView status(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) {
return new ModelAndView("status",modelMap);
}
@RequestMapping("/")
@ResponseBody
public String index(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap) {
return "spinach home here.";
}
二、应用部署
scp spinach.war root@x.x.x.x:/tmp
cp /tmp/spinach.war /usr/tomcat/apache-tomcat-8.5.37/webapps
cd /usr/tomcat/apache-tomcat-8.5.37/bin
./shutdown.sh ./startup.sh
进入页面查看: