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 重点的主要内容,如果未能解决你的问题,请参考以下文章

java复习--Web部分

java web 域对象

探索JSP中的 "9大内置对象!"

打通Java工程师职业进阶之路,“大内高手”出手不凡

Java 5大内存区域

Java入门浅谈