1.URIEncoding="GBK"
html 页面中 charset="GBK"
GET乱码
UTF-8 一部分转换 一部分没转换
由于UTF-8 向国际化提交的时候 有一些汉字没有 GBK的汉字多一些
特例情况:
当传递的中文超出了UTF-8或者GB2312能识别的范围,需要通过GBK来解决
对于GET请求的另一种处理方式,可以通过server.xml文件中Connector元素内
配置一个属性URIEncoding="GBK"
出现乱码时调试:先System.out.println() 不要先out.println()
2.重定向 和 转发
重定向:地址栏有改变;两次请求,自己还得请求;
到处跳;主机
转发:地址栏没改变;一次请求,服务端为你做转发,forward将req和resp向下传递;
只能在web应用程序内跳转;虚拟路径(相对于url-pattern)
什么时候用:需不需要传递req和resp 要跳转到哪
3.setContentType("text/html") text/plain
4.ServletContext 代表整个应用程序,就是那个project
被整个Servlet所共享 application
域 能够装东西 ---> 集合
setAttribute(str,obj) 强转 通常往里面转对象,更常用的是在里面转集合 从数据库中取出记录
getAttribute(str)
getAttributeNames()
getInitParameter(name)
被所有Servlet所共享 有点像static 静态的
getServletContextName ---> display-name
getRealPath(path) 获取的是服务器的真实路径
思路:在ServletContext中统一设置编码 initParameter --> 配置文件 扩展性非常好
所有的Servlet都统一设置一个编码
5.自动拆箱 装箱
Integer i = null
int j = i+5; //int j = i.intValue()+5 NullPointerException
泛型 : 解决安全问题 ClassCastedException
指定只能放什么 将运行时的问题转到编译问题
Collections.synchronizedList() 返回一个线程安全的集合
StringBuilder
6.属性 与 参数
属性:attribute
参数:parameter
7./*和*.do
8..Servlet JSP
Servlet 逻辑强,显示弱 --> JSP 简洁
JSP:直接在HTML中融入Java代码
能写Java代码的HTML页面 扩展名是.jsp
<script type="script/javascript">
</script>
<% ... %>
HTML只识别标签
9.JS客户端校验
服务端也要做校验
10.xxx.jsp
先变成xxx_jsp.java 变成Servlet
再变成xxx_jsp.class
jsp就是一个servlet
只有在第一次访问时 才会解析.java .class
以后再访问的话 就直接用.class
修改就相当于又是第一次访问了
jsp中融入大量java代码 恐怖 维护困难 美工不干
11.注释
显示注释
<!-- -->
对标签的说明,浏览器查看源文件可以看到
隐示注释
<%-- --%>
// /**/ Java注释
12.指令元素
<%@ 指令名称 属性=“属性值”%>
page :autoFlush buffer language
errorPage代码出现异常后的显示页面:少用 要增强健壮性判断 出错了要增强用户体验
isErrorPage="true" 就可以使用exception内置对象
session是否支持会话
isThreadSafe
import 导包 无分号
contentType --> pageEncoding pageEncoding是本地存储
contentType 与 pageEncoding 一致
include :
taglib :prefix uri
静态包含:
<%include file="XXX"%>
先把源代码合为一了,再编译
动态包含:
<jsp:include page="yyy"/>
分别编译 将结果合为一
统一编码
引入的时候尽量引入jsp 不引入html jsp可以设置编码
声明:
<%!
int i = 0; //成员变量 --> 线程肯定不安全
public void run(){}; //方法
%>
13.<%= %> 表达式 无分号
14.<% %> 脚本片段
15.表格打印 html <% %> <%= %> 分割
先打整体<table><tr><td>
然后回到<tr><td>就分割%> <%之类的
16.动作元素