A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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内置对象:




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马