java web 重点
Posted ihrthk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web 重点相关的知识,希望对你有一定的参考价值。
cookie与session、application的区别?
答:1.cookie保存在客户端,cookie只用于保存字符串。可以有两种形式保存,一种是保存到客户端的内存里,另一种是保存到客户端的文本里。用cookie.setMaxAge(expiry);区分两种保存状态。不设置这个时间,则代表保存到内存里。设置这个时间则以文件的形式保存。可以通过response.addCookie(cookie);添加cookie,通过Cookie cookies[] = request.getCookies();查看cookie.注意:一个路径下创建的cookie,只能在当前的路径下和子路径下的页面才能查看cookie,推荐在项目的根目录下创建cookie.
2.session保存在服务器的内存里,可以保存所有的java的数据类型。通过HttpSession session = request.getSession();方法可以得到session,之后就可以设置相应的属性和得到相应的属性。session是通过cookie来实现的,我们可以用禁用cookie,session也不能用这个事例来证明,要想继续使用session,解决的办法是重写URL地址,用到的方法是response.encodeRedirectUrl("show.do");原理是:首先cookie里面保存jsessionid,这个字段用来‘连接’客户端与服务器。客户端一旦禁用cookie,客户端就与服务器失去了纽带。无法完成从客户端从服务器的数据获取。所有只有让服务器重新告诉客户端jsessionid才可以。即用response.encodeRedirectUrl("show.do");这个方法
3.application的生命周期是随着服务器的。获取application对象有两种方法,一种是在Servlet里用this.getServletContext();,别一种是在用session来获取。
什么是Context?
答:Context翻译成文本上下文,但是这个很抽象不好理解。我们有一个更好的解释叫做运行的环境。ServletContext也就是Servlet的运行环境。
JSP概要?
答:JSP就是Servlet的升级版本,在tomcat/work里有jsp转换成servlet的代码。JSP就是在html里面插入JAVA代码。
jsp第一次被访问的时候,服务器会自动将jsp转换成servlet,之后访问就直接访问,所以第一次打开jsp页面会很慢。
JSP语法?
答:1。声明<%!%>(没用)
2。小程序段<%%>
3。表达式<%=%>只能是一行,不能有;
4。编译指令:把jsp转换成servlet的时候执行。<%@ page%>设置响应头,即reponse。<%@ include%>静态导入,也就是原封不动地复制过来。<%@ taglib%>
5.动作指令:<jsp:include page=""></jsp:include>动态导入 <jsp:forward page=""></jsp:forward>重定向
静态导入与动态导入的区别?
1.静态导入是编译指令,动态导入是动作指令。
2.静态导入,jsp转换成servlet的时候将导入和被导入的页面合并成一个servlet,然后编译执行。
3.动态导入,导入和被导入的页面分别生成不同的servlet,在访问导入页面的时候,当执行动作指令的时候,发送一个请求到被导入的页面执行被导入页面的内容,然后再返回继续执行动态导入之后的代码。
4.静态导入速度快,不能用URL参数。动态导入速度慢,能传URL参数。
创建Servlet的步骤?
1。创建一个类继承HttpServlet
2。重写services(HttpServletRequesrequest,HttpServletResponse response)方法接受请求
3。配置web.xml文件(到底什么样的url能够访问servlet)
<servlet>
<servlet-name>ShowServlet</servlet-name>
<servlet-class>com.mydream.shopping.ShowServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ShowServlet</servlet-name>
<url-pattern>/show.do</url-pattern>
</servlet-mapping>
4。注意:修改web.xml一定要重启服务器,因为Servlet是单例的。
5。Servlet生命周期?
答:Servlet生命周期是由Web服务器管理的,所以tomcat我们有的时候也称之为Serlvet容器。容器,可以管理一种或多种对像生命周期的就叫容器。
1。服务器启动的时候没有调用Servlet的构造方法,也就是说服务器启动的时候没有创建Servlet对像。
2。当我们第一次访问Servlet的时候调用它的构造方法创建对象,并且调用init方法进行初始化,然后根据请求的不同调用相应的services方法。
3。之后,再访问Servlet不会调用构造方法和init方法,因为Servlet是单例的。
4。当Servlet代码改变需要重新加载的时候调用destory方法销毁Servlet对象,服务器关闭的时候自动销毁。
6。为什么创建了Servlet对像还需要init方法?init方法到底初始化什么?
答:ServletConfig对象,在web.xml文件在内存中的表现形式工,当服务器启动的时候通过IO流把web.xml文件的内容读取到内存中封装。
7。怎么修改项目名称?
答:第一步,用rename在项目上直接改名称,第二步,在项目在右键-properties-myeclipse-web-web context root上修改访问路径。
8。重定向与转发有什么区别?
答:重定向有:response.sendRedirect(location);转发有:request.getRequestDispatcher(path).forward(request, response);和<jsp:forward page=""></jsp:forward> 两种
1。重定向的时候地址会发生变化,服务器内部转发的时候地址不会发生变化。
2。传递给重定向之前的页面的URL参数,重定向之后的页面是获取不到的,因为它们传的是两个不同的request对象。(当我们 发送请求给一个页面,遇到重定向会首先把所有请求给客户端一个响应,然后客户端浏览器再重新发送请求给跳转页面)
3。代码和JSP动作转发不一样,发送给转发前的URL参数,转发之后的页面依然能够接收到。(因为他们使用的是同一个request请求,当发送请求给一个页面,遇到服务器内部转发,直接在服务器内部直接跳转,响应给客户端的是跳转之后的页面。)
4。重定向比服务器内部转发的效率稍慢,服务器内部比重定向的效率稍快。
9。JSP的九大内置对象?
答:常用的四种有 request、response、out、session
10。PreparedStatement比Statement的优点有什么?
答:1。去除拼接字符串的麻烦,2。防止SQL注入。
以上是关于java web 重点的主要内容,如果未能解决你的问题,请参考以下文章