要开发一个接收HTTP请求的服务端,由于端口的限制,只能是依托于Tomcat等容器的应用。所以就想到用spring mvc接收http请求,并处理返回。
1.新建maven的web应用,配置web.xml中spring的监听及spring mvc的servlet映射。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Archetype Created Web Application</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:spring/*.xml
</param-value>
</context-param>
<!-- Filter 定义 -->
<!-- Character Encoding filter -->
<filter>
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- Filter 映射 -->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring容器启动监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring 刷新Introspector防止内存泄露 -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<!-- session超时定义,单位为分钟 -->
<session-config>
<session-timeout>20</session-timeout>
</session-config>
<!-- spring mvc的servlet,加载WEB-INF/SpringSecurity-servlet.xml的配置文件,以启动Spring
MVC模块 -->
<servlet>
<servlet-name>mytest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mytest</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
2.配置相应的spring mvc映射文件。在web.xml中配置的mvc servlet名字为mytest,对应的映射文件就是mytest-servlet.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<!-- 对web包中的所有类进行扫描,以完成bean的创建和自动依赖注入功能 -->
<context:component-scan base-package="com.ajita"/>
<!-- 启动Spring mvc的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<!-- 对模型视图的名称的解析 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
</beans>
3.新建一个测试用的controller,因为用到了spring mvc的注解功能,要扫描对应的controller包,所以新建的SimpleController要在com.ajita包下面。
@Controller
public class SimpleController {
@RequestMapping("/simpletest.do")
public void test(Model model, HttpServletRequest request,
@RequestParam(value = "level", required = false) String level,
@RequestParam(value = "message", required = false) String message,
HttpServletResponse response) {
String ret="heihei";
try {
ServletOutputStream stream = response.getOutputStream();
if(level!=null||message!=null)
ret=level + message;
stream.print(ret);
stream.close();
} catch (IOException ex) {
}
}
}
4.发布,部署到Tomcat下就可以了。我自己测试环境的地址为:http://localhost:8080/HttpServerTest/simpletest.do?level=555&message=ddd ,访问就可以了。
附件是demo代码,还包含了一个调用quartz进行简单任务调度的例子
分享到:
相关推荐
在本项目中,我们探讨的是一个基于...综上所述,这个基于Spring MVC的JavaWeb项目涵盖了Web开发的多个核心方面,包括后端逻辑处理、数据库操作、用户界面设计以及安全性和性能考虑,是学习和实践JavaWeb开发的好例子。
Spring MVC的工作流程大致如下:当用户发起一个HTTP请求时,DispatcherServlet作为前端控制器接收请求,然后根据请求的URL和方法映射到对应的Controller。Controller处理业务逻辑,可能涉及到与服务层的交互,比如...
1. Spring MVC通过DispatcherServlet接收HTTP请求,然后根据映射规则将请求分发给相应的Controller进行处理。默认情况下,每个请求都在单独的线程中执行,这意味着可以并行处理多个请求,提高系统响应速度。 2. 然而...
在项目中,Spring MVC负责处理HTTP请求,调用服务层方法,处理结果并返回到客户端。 2. **Spring Boot**: Spring Boot简化了Spring应用的初始搭建以及配置过程。它通过“约定优于配置”的原则,提供了一种快速...
在这个“最全的Spring MVC注解例子”中,我们将深入探讨Spring MVC的核心注解,以及如何实现异步请求处理和错误管理。 1. **Spring MVC核心注解** - `@Controller`:标记一个类为处理HTTP请求的控制器。这是Spring...
通过DispatcherServlet接收请求,HandlerMapping映射请求到对应的Controller,Controller处理请求并调用Service层,最后由View渲染结果返回给用户。 再者,MyBatis作为持久层框架,简化了数据库操作。它允许开发者...
在Spring MVC中,我们可以使用@RequestBody注解来处理请求参数,并使用 EncryptUtils 工具类来进行加密和解密。EncryptUtils 工具类提供了sha()方法来生成签名,createAesCipher()方法来创建AES加密器。 在控制器...
它通过DispatcherServlet作为前端控制器,负责接收请求并分发到相应的处理器。 - **组件**:主要包括Model、View、Controller、HandlerMapping、HandlerAdapter、ViewResolver等组件,每个组件都有明确的职责。 - ...
在该模式中,模型负责业务逻辑处理,视图负责展示数据,而控制器则作为模型和视图之间的桥梁,接收用户请求并调用相应的服务来处理这些请求。 在Spring MVC中,每个请求都会经过DispatcherServlet,这是一个前端...
三、Spring MVC核心流程图:描述了Spring MVC处理请求的流程,包括前端控制器接收请求,经过分发器分发给具体的控制器,然后由控制器处理业务逻辑,最后将结果返回给用户。 四、Spring MVC DispatcherServlet说明:...
5. **数据绑定和验证**:Spring MVC提供强大的数据绑定功能,将HTTP请求参数自动映射到处理方法的参数,并支持JSR-303/JSR-349 Bean Validation标准进行数据验证。 6. **异常处理**:通过定义全局异常处理器,可以...
2. **DispatcherServlet**:Spring MVC的核心组件,作为前端控制器,负责接收HTTP请求,调度请求到相应的处理器。 3. **@Controller**:用于标记控制层类,告诉Spring这个类是一个处理HTTP请求的组件。 4. **@...
DispatcherServlet是整个流程的入口,负责接收请求并分发到相应的Controller。Controller是业务逻辑处理的核心,Model代表了应用的数据模型,View则负责渲染视图。理解这四个组件以及它们之间的交互是掌握Spring MVC...
1. **DispatcherServlet**: 作为Spring MVC的核心组件,DispatcherServlet负责接收HTTP请求,然后根据配置的映射规则将请求分发到相应的处理器(Controller)。它还负责处理视图解析和异常处理。 2. **Model-View-...
开发者会定义实体类(Entity)来表示数据库中的表,编写Mapper接口和XML配置文件来定义SQL操作,创建Service接口和实现类来封装业务逻辑,最后在Controller中处理HTTP请求,调用Service层完成业务处理,并返回视图或...
Spring MVC通过DispatcherServlet接收请求,分发到相应的处理器,处理完成后返回响应。这样可以使Web应用程序结构清晰,易于维护。 **MyBatis**是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。...
- **DispatcherServlet**:这是 Spring MVC 的前端控制器,负责接收 HTTP 请求并分发给合适的后端组件处理。 - **WebApplicationContext**:这是一个特殊的 Bean 容器,用于管理 Web 应用中的所有 Bean。 - **默认的...