35_Java中web.xml 配置文件, 监听器 (Listener),git工具的使用

1. web.xml 配置文件

WEB-INF
|- lib 放第三方jar包
|- classes 自己写的servlet等java类
|- web.xml web应用程序的配置文件

写一个servlet 要在类上加一个 @WebServlet(urlPatterns="")
写一个filter 要在类上加一个 @WebFilter(urlPatterns="")
这种基于注解的写法在servlet 3.0 才有的

web.xml是另一种配置方式,跟注解方式配置的地位是一样的

xml (x 可扩展 markup 标记 language 语言) 标签可以进行扩展
html (超文本标记语言) 标签都是规定死的 <a> <h1> <p> ...

例如:

        20行

<!-- 配置一个servlet -->
<servlet>
    <!-- servlet名字 -->
    <servlet-name>servlet1</servlet-name>
    <!-- servlet对应的java类 -->
    <servlet-class>controller.Servlet1</servlet-class>
	<!-- 在tomcat启动时就创建servlet的实例,而不是等到第一次请求时
         其中数字表示优先级,数字小的优先级高
    -->
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>servlet1</servlet-name>
    <!-- servlet的路径 -->
    <url-pattern>/s1</url-pattern>
</servlet-mapping>

<!-- 等价于 @WebServlet(urlPatterns = "/s1", loadOnStartup = 1 ) -->

例如:

        13行

<filter>
    <!-- 过滤器名字 -->
    <filter-name>f1</filter-name>
    <!-- 过滤器对应的java类 -->
    <filter-class>filter.Filter1</filter-class>
</filter>
<filter-mapping>
    <filter-name>f1</filter-name>
    <!-- 过滤器要过滤的路径 -->
    <url-pattern>/ *</url-pattern>
</filter-mapping>
<!-- 等价于 @WebFilter(urlPatterns="/*") -->

过滤器的过滤顺序可以通过 filter-mapping标签的顺序调整,先进入filter-mapping在前面的过滤器

HttpSession 会话
当第一次调用 request.getSession() 会创建会话
销毁有两种:

  1. session.invalidate(); 会立刻销毁session
  2. 两次请求的时间间隔超过30分钟,session会销毁
    例如:

        5行

<session-config>
    <!-- 配置session的超时时间, 单位是分钟 -->
    <session-timeout>10</session-timeout> 
</session-config>

2. 监听器 (Listener)

ServletContextListener 监听应用程序启动和停止事件
ServletRequestListener request对象创建和销毁事件
HttpSessionListener session对象创建和销毁事件

ServletContextAttributeListener application作用域 setAttribute,removeAttribute事件
ServletRequestAttributeListener request作用域 setAttribute,removeAttribute事件
HttpSessionAttributeListener session 作用域 setAttribute,removeAttribute事件

HttpSessionActivationListener session 的激活和钝化
HttpSessionBindingListener session变量绑定事件

session的激活和钝化

  1. 当tomcat服务器停止时,会把session中所有变量存储到磁盘上, 称为钝化
  2. 当tomcat服务器重新启动时,把刚才存入磁盘的信息读取出来,恢复至session作用域, 称为激活
    钝化过程调用是java序列化
    激活过程调用是java反序列化

向Session中存储的变量要实现序列化接口(Serializable)
都是针对自定义的java类,如:Student, Hero

3. git工具的使用

用途:1) 源代码的版本控制工具
2) 多人协作开发

3.1 安装

从git官网下载安装包安装
git --version 查看git的版本信息

运行初始化设置
git config --global user.email "你的邮件地址"
git config --global user.name "你的名字"

3.2 将现有项目使用git管理

  1. 用cd进入项目所在目录
    执行 git init 命令,结果会生成一个.git文件夹, 此文件夹中保存的都是和版本相关的信息

  2. 选择哪些文件交给git管理
    编写一个名为 .gitignore 文件,此文件中写入要忽略的文件夹或文件的名字

  3. 将除了.gitignore里以外的文件加入git管理
    git add .
    可以用 git status 查看哪些新文件被加入了git

  4. 提交新加文件
    git commit -m '初始化项目'
    提交后再使用git status 查看,工作空间就空了

  5. 列出提交的版本号
    git log
    记录需要回滚的版本号
    git checkout 版本号

问题:如果在checkout报错:

        2行

error: Your local changes to the following files ...

原因是本地有些文件被更改了,这时如果希望checkout能够继续执行,执行 git stash命令让工作空间变得干净
重新运行git checkout

  1. git的服务器
    国外的git服务器:github
    国内的git服务器: 码云 gitee
    也可以搭建自己的服务器

6.1) git服务器上注册账号,创建新的项目(新项目的名字和本地项目名字一致)
6.2) 运行命令
语法:
git remote add origin 项目地址.git 跟远程项目管理
例如:
git remote add origin https://gitee.com/manyhf16/git-test3.git
6.3) 将远程服务器上的项目同步到本地
git pull origin master
6.4) 将本地代码同步到远程服务器
git push origin master
输入用户名/密码

6.5) 程序员b要在此基础上进行开发
git clone https://gitee.com/manyhf16/git-test3.git

4. 项目开发流程

  1. 获取需求 (猪八戒网)
  2. 设计
    数据库设计
    实体类设计(一般是实体类对应一张表)
    分层设计
    com.westos.eshop.controller (servlet) 控制层 + jsp
    com.westos.eshop.service (biz) 业务逻辑层
    com.westos.eshop.dao 数据访问层(完成数据的增删改查)
    com.westos.eshop.entity 实体类
    domain 域对象
    com.westos.eshop.util 工具类
  3. 编写代码
  4. 测试
  5. 部署运行

电商后台管理项目

  1. 类别管理
    id(编号) name(名字) pid(父类别编号) lvl(级别)

  2. 商品管理
    id(编号) jdzy_shop_id(店铺编号) brand_id(品牌编号) name(商品名称)
    origin_price 原始价
    market_price 市场价
    price 销售价
    img 图片地址
    category_id 类别编号

    不输入条件
    where name like ?
    where price between ? and ?
    where name like ? and (price between ? and ?)

  3. 用户表
    username
    password

猜你喜欢

转载自blog.csdn.net/Lisiluan/article/details/88369066