黑马程序员技术交流社区
标题: 【石家庄校区】JavaEE-Web阶段的一些知识点汇总 [打印本页]
作者: 狸子换太猫 时间: 2018-2-4 17:06
标题: 【石家庄校区】JavaEE-Web阶段的一些知识点汇总
JavaEE-Web阶段的一些知识点汇总
一,解决乱码问题:
1,浏览器向服务器提交的信息中含有中文:
get方式提交:
get的参数都藏在请求行中,请求行中编码是固定ISO8859-1;
解决方案: 通过String的构造方法:
newString(文件名.getByte("ISO8859-1"),"UTF-8");
post方式提交:
post的方式参数藏在请求体中,通过setCharacherEnconding()方法将请求体中的编码改成UTF-8;
request.setCharacherEnconding("UTF-8");
2,服务器向浏览器输出的信息含有中文:
设置响应头:
响应头的编码是固定的ISO-8859-1,所有我们需要给浏览器能看懂的东西
if(header.contains("Firefox")){
filename = base64EncodeFileName(filename);
}else{
filename = URLEncoder.encode(filename, "UTF-8");
}
(由于火狐浏览器的特殊性,需要为其建立单独的转码方式)
public static String base64EncodeFileName(String fileName) {
BASE64Encoder base64Encoder = new BASE64Encoder();
try {
return "=?UTF-8?B?"
+ new String(base64Encoder.encode(fileName
.getBytes("UTF-8"))) + "?=";
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
设置响应体:
getOutputStream
getWriter
setContextType("text/html;charset=UTF-8") || setHeader("Context-Type","text/html;charset=UTF-8") setCharaterEnconding("UTF-8");
二,Web中的路径问题
1.浏览器端访问Servlet;HTML;JSP
* 浏览器端如果想直接访问Servlet的话
路径的编写:使用: /工程名/servlet的虚拟路径
* 浏览器如果想要直接访问.html.jsp或者其他静态资源
路径的编写:使用: /工程名/资源所在的路径
2.从Servlet中跳转到其他
* servlet A想要跳转其他servlet B
1.重定向
路径的编写:使用: /工程名/B对应的虚拟路径
2.请求转发
路径的编写:使用: /B对应的虚拟路径
* servlet A想要跳转到 .html或者.jsp
1.重定向
路径的编写:使用: /工程名/.jsp或者.html所在的子路径
2.请求转发
路径的编写:使用: /.jsp或者.html所在的子路径
*servlet想要读取项目下文件
1.需要用ServletContext的对象来读取
1.ServletContext.getResouceAsStream("资源路径(不用再加工程名)")
2.ServletContext.getRealPath("资源路径(不用再加工程名)")
三,Cookie和Session
* Cookie本身大小和个数是有限制的
* Session没有限制,Session的数据保存在服务器端
* Session是基于Cookie实现的.
* request的getSession()方法获取Session;
* Session是域对象
创建:服务器第一次调用getSession()时创建Session
销毁:三种情况销毁session
1.session过期,默认时间是30分钟
2.非正常关闭服务器
3.手动调用session.invalidate();
* Session的作用的范围:
多次请求(一次对话)
四,JSP
JSP
JavaServer Pages(Java服务器端的页面)
JSP的脚本
<%!%> :翻译成Servlet的成员内容
<% %> :翻译成Servlet中的service方法内部的内容,定义类&变量
<%=%> :翻译成Servlet中的service方法中的输出内容
JSP自身的内容
JSP的注释
可以用HTML的注释<!--注释-->,一直有
java代码的注释符号以及内容要写进<%%>里,翻译成Servlet后存在,翻译成HTML后消失
JSP自身的注释<%--注释--%>,在翻译成Servlet后,这类注释消失
JSP的指令
<%@指令名称 属性名称="属性值" 属性名称="属性值"...%>
JSP中有三个指令
page指令:用来设置JSP的
isELIgnored:设置JSP中是否忽略EL表达式,默认值是false不忽略.
errorPage:设置出错后跳转到的网页
isErrorPage:
include指令
taglib指令
JSP的内置对象
在JSP中可以直接使用的对象
JSP中有9大内置对象
request———— HttpServletRequest
response———— HttpServletResponse
session
application
page
pageContext
config
out
exception
page内置对象:真实对象时Object,就是JSP翻译成Servlet后的类的引用
out内置对象:
pageContext内置对象:
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |