1.在JAVAWEB开发中,经常使用绝对路径访问js/css文件:
访问绝对路径的方法为:${pageContext.request.ContextPath}/ <%=request.getContextPath()%>
2.在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是"*.扩展名",另一种格式 是以正斜杠(/)开头并以"/*"结尾
3.如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。 凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,它们的访问请求都将交给缺省Servlet处理, 也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求
4.当多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上 调用Servlet的service方法,因此service方法内如果访问了同一个资源的话,就有可能引发线程安全问题。
若资源为局部变量,则不会引起安全问题,若为全局问题,则会引发安全问题。使用同步锁可以解决安全问题,但 是同步锁会导致不放弃锁,所有的其他资源都在等待锁。还可以使用SingleThreadModel接口。但是在Servlet API 2.4中,已经将SingleThreadModel标记为Deprecated(过时的)
5.在Servlet的配置文件的web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数:
<init-param>
<param-name>name</param-name>
<param-value>gacl</param-value>
</init-param>
获取参数:ServletConfig的类的实例对象调用getInitParameter();(getInitParameterName()获取所有初始化 参数)
Enumeration<String> e = config.getInitParameterNames();
while(e.hasMoreElements()){
String name = e.nextElement();
String value = config.getInitParameter(name);
response.getWriter().print(name + "=" + value + "<br/>");
}
6.ServletContext对象:web启动的时候,会为每一个web应用程序创建一个ServletContext对象 获取: this.getServletConfig()/(this).getServletContext())
应用: 1.多个Servlet实现数据共享
7./的访问区别:
1)代表web工程:a.ServletContext.getRealPath(String path)获取资源的绝对路径
Get请求:url后面带的参数():超链接、重定向
String name = request.getPara...("name");
String strName = new String(name.getByte("iso-8859-1"),"GBK");
post请求:最开始处将请求的数据设置为“UTF-8”就行了,输入如下语句: request.setCharacterEncoding(“UTF-8”);
9.Cookie:在程序代码中并没有使用setMaxAge方法设置cookie的有效期,
所以当关闭浏览器之后,cookie就失效了,要想在关闭了浏览器之后,cookie依然有效,
那么在创建cookie时,就要为cookie设置一个有效期。(将cookie存贮到硬盘上) 将cookie的有效期设置为0,命令 浏览器删除该cookie
要想在cookie中存储中文,那么必须使用URLEncoder类里面的encode(String s, String enc)方法进行中文转码, 例如:
Cookie cookie = new Cookie("userName", URLEncoder.encode("孤傲苍狼", "UTF-8"));
在获取cookie中的中文数据时,再使用URLDecoder类里面的decode(String s, String enc)进行解码,例如:
URLDecoder.decode(cookies[i].getValue(), "UTF-8")
11.注释:在JSP中,注释有:
显式注释:直接使用HTML风格的注释:<!- - 注释内容- ->
隐式注释:直接使用JAVA的注释://、/*……*/
JSP自己的注释:<%- - 注释内容- -%>
区别:HTML的注释在浏览器中查看源文件的时候是可以看得到的,而JAVA注释和JSP注释在浏览器中查看 源文件时是看不到注释的内容的
12.JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:
这个Java类必须具有一个无参的构造函数
属性必须私有化。
私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。
13.<jsp:setProperty>标签用于设置和访问JavaBean对象的属性。
name:javaBean对象名
property:对象的实例名
param:作为传参时的参数名
value:值。
访问绝对路径的方法为:${pageContext.request.ContextPath}/ <%=request.getContextPath()%>
2.在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是"*.扩展名",另一种格式 是以正斜杠(/)开头并以"/*"结尾
3.如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前Web应用程序的缺省Servlet。 凡是在web.xml文件中找不到匹配的<servlet-mapping>元素的URL,它们的访问请求都将交给缺省Servlet处理, 也就是说,缺省Servlet用于处理所有其他Servlet都不处理的访问请求
4.当多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上 调用Servlet的service方法,因此service方法内如果访问了同一个资源的话,就有可能引发线程安全问题。
若资源为局部变量,则不会引起安全问题,若为全局问题,则会引发安全问题。使用同步锁可以解决安全问题,但 是同步锁会导致不放弃锁,所有的其他资源都在等待锁。还可以使用SingleThreadModel接口。但是在Servlet API 2.4中,已经将SingleThreadModel标记为Deprecated(过时的)
5.在Servlet的配置文件的web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数:
<init-param>
<param-name>name</param-name>
<param-value>gacl</param-value>
</init-param>
获取参数:ServletConfig的类的实例对象调用getInitParameter();(getInitParameterName()获取所有初始化 参数)
Enumeration<String> e = config.getInitParameterNames();
while(e.hasMoreElements()){
String name = e.nextElement();
String value = config.getInitParameter(name);
response.getWriter().print(name + "=" + value + "<br/>");
}
6.ServletContext对象:web启动的时候,会为每一个web应用程序创建一个ServletContext对象 获取: this.getServletConfig()/(this).getServletContext())
应用: 1.多个Servlet实现数据共享
2. 获取web.xml配置的初始化参数
3.实现请求转发
4.读取资源文件:7./的访问区别:
1)代表web工程:a.ServletContext.getRealPath(String path)获取资源的绝对路径
b. 在服务器端forward到其他页面
c. 使用include指令或者<jsp:include>标签引入页面
2)代表webapps目录(浏览器用):sendRediret()请求重定向,超链接跳转,From表单,js脚本和css引用
Get请求:url后面带的参数():超链接、重定向
String name = request.getPara...("name");
String strName = new String(name.getByte("iso-8859-1"),"GBK");
post请求:最开始处将请求的数据设置为“UTF-8”就行了,输入如下语句: request.setCharacterEncoding(“UTF-8”);
9.Cookie:在程序代码中并没有使用setMaxAge方法设置cookie的有效期,
所以当关闭浏览器之后,cookie就失效了,要想在关闭了浏览器之后,cookie依然有效,
那么在创建cookie时,就要为cookie设置一个有效期。(将cookie存贮到硬盘上) 将cookie的有效期设置为0,命令 浏览器删除该cookie
要想在cookie中存储中文,那么必须使用URLEncoder类里面的encode(String s, String enc)方法进行中文转码, 例如:
Cookie cookie = new Cookie("userName", URLEncoder.encode("孤傲苍狼", "UTF-8"));
在获取cookie中的中文数据时,再使用URLDecoder类里面的decode(String s, String enc)进行解码,例如:
URLDecoder.decode(cookies[i].getValue(), "UTF-8")
10.表单重复提交的三种场景:
1)重复点击提交按钮,解决:JavaScript判断设置标志只提交一次/点击提交按钮之后按钮不可点击。
2)刷新之后提交按钮,点击后退提交 解决:session设置令牌机制11.注释:在JSP中,注释有:
显式注释:直接使用HTML风格的注释:<!- - 注释内容- ->
隐式注释:直接使用JAVA的注释://、/*……*/
JSP自己的注释:<%- - 注释内容- -%>
区别:HTML的注释在浏览器中查看源文件的时候是可以看得到的,而JAVA注释和JSP注释在浏览器中查看 源文件时是看不到注释的内容的
12.JavaBean是一个遵循特定写法的Java类,它通常具有如下特点:
这个Java类必须具有一个无参的构造函数
属性必须私有化。
私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。
13.<jsp:setProperty>标签用于设置和访问JavaBean对象的属性。
name:javaBean对象名
property:对象的实例名
param:作为传参时的参数名
value:值。