Java-JavaWeb
HTML+CSS
XML
- 标签需要闭合
- 双标签语法
- 单标签语法
- 标签属性
- 原样显示语法:
<![CDATA[<<<<hello>]]>
XML解析技术
jdom
- 在DOM基础上进行封装
dom4j
- 仅对jdom进行封装
pull
- 用于Android
Tomcat
安装
- 下载地址:https://tomcat.apache.org/download-80.cgi
- 安装:绿色版,解压即可用
- 注:Windows下需要手动配置好JAVA_HOME
启动
Windows
- 双击bin目录下的startup.bat
- cmd输入:
catalina run
Mac
sudo chmod a+x tomcat/bin/*.sh
sudo tomcat/bin/startup.sh
验证启动
- 浏览器访问:http://localhost:8080
配置
- conf/server.xml
部署
方式一
- 直接将工程拷贝到webapps目录下
方式二
- 在conf/Catalina/localhost下新建一个XXX.xml文件
- 文件内容:<Context path="/abc" docBasc="D:book" />
- path:表示访问路径
- docBasc:表示工程目录
idea整合Tomcat
- File | Settings | Build, Execution, Deployment | Application Servers
idea创建动态web工程
- 右击工程目录 -> new -> Module -> Java Enterprise
- Application Server : Tomcat 8.5.*
- 勾选:Web Application
- Next
idea修改web工程运行实例
Run | Edit Configurations | Tomcat Server | ......
- 重命名
- 更改Tomcat版本
- 更改浏览器
- 设置热部署
- 改端口号
- 改访问路径
Servlet
概念
- 是JavaEE规范之一,规范就是接口
- 是JavaWeb三大组件之一,Servlet、Filter、Listener
- 是运行在服务器上的一个小程序,负责处理请求和响应
简单使用
- 新建类:src/HelloServlet001.java使之implements Servlet
- 之后所有访问入口都是service()方法
web.xml配置
<web-app> <servlet> <servlet-name>HelloServlet001</servlet-name> <servlet-class>HelloServlet001</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet001</servlet-name> <url-pattern>/HelloServlet001</url-pattern> </servlet-mapping> </web-app>
手动HttpServlet
- 新建类,让它继承HttpServlet类,并重写里边的doGet()、doPost()方法等
idea自动创建HttpServlet
- 右击->new->Create New Servlet
- 取消勾选“Create Java EE 6...”
ServletConfig类的使用
- 在init()方法中可以通过ServletConfig类来获取init-param自定义参数等
ServletContext类的使用
概念
- 是一个接口,表示Servlet上下文对象
- 是一个web工程,只有一个ServletContext对象实例
- ServletContext对象是一个域对象
- ServletContext在web工程启动时创建,停止时销毁
作用
- 获取context-param
- 获取当前工程路径
- 获取工程部署后服务器绝对路径
- 像map一样存取数据
请求转发
- 注:只能工程内部请求转发
核心代码
RequestDispather rd = seq.getRequestDispatcher(); rd.forward(req, resp);
书城项目
base标签的作用
- 声明当前页面运行时参照地址
- 声明在head标签中
请求重定向
- 设置响应码
- 设置location
- 注:不能重定向WEB-INF目录,但可以重定向工程外部链接
JSP
JSP中九大内置对象
- request(请求对象)
- response(相应对象)
- pageContext(上下文对象)
- session(会话对象)
- application(ServletContext对象)
- config(ServletConfig对象)
- out(jsp输出流对象)
- page(指向当前jsp的对象)
- exception(异常对象)
JSP中四大域对象
pageContext(PageContextImpl类)
- 当前页面有效
request(HttpServletRequest类)
- 一次请求内有效
session(HttpSession类)
- 一次会话范围内有效(关闭浏览器失效)
application(SevletContext类)
- web工程范围内有效(重启服务失效)
监听器Listener
ServletContextListener监听器
- 编写一个类实现ServletContextListener接口
实现其两个回调方法
contextInitialized()
contextDestroyed()
到web.xml中配置监听器
<listener> <listener-class></listener-class> </listener>
EL表达式
语法
${key}
优先级
- 当四个域对象中存在相同的key,会按照域对象从小到大顺序读取
- pageContext > request > session > application
获取四个特定域中的属性
- pageScope
- requestScope
- sessionScope
- applicationScope
JSTL标签库
<c:
<fmt:
<fn:
文件上传下载
- 使用三方jar包
cookie
session
filter过滤器
作用
- 拦截请求
- 过滤响应
场景
- 权限验证
- 日志存贮
- 事务
使用
- 定义类并实现Filter接口
- 定义好web.xml
注意
- FilterChain过滤器链使用时,会按照web.xml中定义的顺序执行,但是每个Filter都要定义doFilter()方法,否则如果某个Filter中未定义doFilter()方法,后边所有的Filter都不会执行
ThreadLocal
作用
- 可以为当前线程关联一个数据,解决多线程数据安全问题
特点
- 像map一样存储数据,key为当前线程
- 每个ThreadLocal对象只能存一个数据,可以定义多个
- 一般都是static的
- 线程销毁后,JVM自动释放