[WEB]WEB工程

结构

java的web工程结构如下:
--WEB-INF
	|
	+--web.xml
	|
	+--classes
	|
	+--lib
其中web.xml用来初始化配置信息,classes存放工程中的java代码编译成的class文件,lib中存放引用到jar包。下面来看web.xml的配置。

Filter

fileter的定义如下:
public interface Filter{
	public void init(FilterConfig filterConfig) throws ServletException;
	public void doFilter ( ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException, ServletException;
	public void destroy();
}
在web.xml中的配置如下:
<filter>
	<filter-name>encodingFilter</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF8</param-value>
	</init-param>
	<init-param>
		<param-name>forceEncoding</param-name>
		<param-value>true</param-value>
	</init-param>
</filter> 
上面的CharacterEncodingFilter的作用是根据配置来修改response中的编码格式。现在的问题是Filter在什么时候调用?怎样调用?其实用四个字就可以概括:
栈式调用
自己配一个下面的测试的Filter,然后Debug一下就知道了:
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
	System.err.println("before");
	arg2.doFilter(arg0, arg1);
	System.err.println("after");
}
另外,需要用<filter-mapping>来配置请求对应的<filter>。

Listener

配置方法如下:
<listener>
	<listener-class>com.alibaba.citrus.webx.context.WebxContextLoaderListener</listener-class>
</listener>
Listener用来监听客户端的请求、服务器操作等并定义在这些时间发生时应该做的操作,有四种目标事件:
  • ServletContextAttributeListener:属性的存入、删除和替换
  • ServletRequestAttributeListener:request属性的变化
  • ServletRequestListener:请求的到达、销毁。
  • HttpSessionAttributeListener:session属性的变化
  • ServletContextListener:接受ServletContext的生命周期的变化
安装在服务器中一个特定URL名字空间的WEB部件的集合构成了一个WEB应用,每个应用都会有上下文,而ServletContext就提供了访问这些上下文的方式,获取ServletContext的方式如下:
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
ServletContext servletContext = wac.getServletContext();
// TODO
ContextLoaderListener实现了ServletContextListener,在ServletContext初始化之后被调用,在初始化方法中完成了spring的上下文的初始化,如下:
public void contextInitialized(ServletContextEvent event) {
	this.contextLoader = createContextLoader();
	this.contextLoader.initWebApplicationContext(event.getServletContext());
}
初始化spring的时候默认寻找的路径是/WEB-INF/applicationContext.xml,可以通过参数contextConfigLocation进行配置,比如:
<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath*:cybertronspringconfig/spring-*.xml</param-value>
</context-param>

context-param

在上面看到很多地方需要自定义参数,这里需要用context-param来做:
<context-param>
	<param-name>log4jConfigLocation</param-name>
	<param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
在需要使用的时候需要从ServletContext中获取:
servletContext.getInitParameter(CONFIG_LOCATION_PARAM);

Servlet

Servlet用来处理请求,和URL的对应关系需要在web.xml中配置:
<servlet>
	<servlet-name>spring</servlet-name>
	<servlet-class>
		org.springframework.web.servlet.DispatcherServlet
	</servlet-class>
	<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>spring</servlet-name>
	<url-pattern>/service/*</url-pattern>
</servlet-mapping>
这样的话就可以用DispatcherServlet来处理/service/的所有请求。而DispatcherServlet是springMVC的东西,将不同的请求分发给不同的Handler处理。其中load-on-startup用来描述是否在启动的时候加载该servlet。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的影城管理系统,源码+数据库+论文答辩+毕业论文+视频演示 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多生活之中,随之就产生了“小徐影城管理系统”,这样就让小徐影城管理系统更加方便简单。 对于本小徐影城管理系统的设计来说,系统开发主要是采用java语言技术,在整个系统的设计中应用MySQL数据库来完成数据存储,具体根据小徐影城管理系统的现状来进行开发的,具体根据现实的需求来实现小徐影城管理系统网络化的管理,各类信息有序地进行存储,进入小徐影城管理系统页面之后,方可开始操作主控界面,主要功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台;首页、电影信息、电影资讯、个人中心、后台管理、在线客服等功能。 本论文主要讲述了小徐影城管理系统开发背景,该系统它主要是对需求分析和功能需求做了介绍,并且对系统做了详细的测试和总结。具体从业务流程、数据库设计和系统结构等多方面的问题。望能利用先进的计算机技术和网络技术来改变目前的小徐影城管理系统状况,提高管理效率。 关键词:小徐影城管理系统;Spring Boot框架,MySQL数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值