Java开发岗位面试题归类汇总三:Java Web

时间:2021-08-13 16:48:40

1sessioncookie的区别和联系,session的生命周期,多个服务部署时session管理

答:区别和联系

    1、session和cookie都是跟踪用户的整个会话

    2、session是存放在服务器中,cookie不是很安全,cookie是放在客户端中,可以设置cookie的时间,将它保存在磁盘里。

    3、SESSIONID会存放在cookie中,便于读取数据,若禁用cookie,则可以采取用URL重写来代替,仍然能够把session id传递回服务器

参考:http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html

    session的生命周期是

    1. 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。

    2. 调用Session的invalidate方法销毁session。

    参考:http://www.cnblogs.com/binger/archive/2013/03/19/2970171.html

    多个服务部署时的管理

    每一个web应用程序都有唯一一个ServletContext实例对象,被该web应用下面的每一个servlet共享。通过修改tomcat的server.xml,使不同web应用的ServletContext可以互相访问。然后,用ServletContext的setAttribute()方法把session存入ServletContext中,在另一个web程序就可以用getAttribute()方法取得传递过来的session。

参考:http://www.cnblogs.com/jianyungsun/p/6566734.html

2servlet的相关问题

    答:一个servlet相当于一个类,创建一个servlet应用程序的不步骤是:继承HttpServlet(继承于GenericServlet)、重写doGet/doPost方法、在web.xml配置servlet。

servlet的生命周期是inti、service、destory。装载servlet有三种方式(应用程序启动,设置级别、用户请求、servlet被修改),servlet只被初始化一次,销毁实在服务器关闭,执行destory方法。

一个完整的项目流程流程是,tomcat加载应用程序,然后创建一个servletContext。servletContext,所有用户共用一个。当用户发送一个请求是,如果有servlet则直接调用1.接收用户发送的请求 2.调用其他的java程序来处理请求3.根据处理结果,返回给用户一个页面,总结就是(处理表单数据、处理业务逻辑、分发转向)

3webservice的相关问题

    答:参考http://www.cnblogs.com/Jessy/p/3528341.html

4jdbc连接,forname方式的步骤,怎么申明使用一个事务

    答:jdbc连接步骤:

    1、注册驱动

    2、获得连接

    3、得到执行sql语句的statement

    4、获得结果集

    5、关闭资源

    其中不建议使用class.fornamed的方式注册驱动,一般用DriverManager这个类的静态方法,Class.forName(xxx.xx.xx)有两个作用:返回的是一个类;或者要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。

    怎么申明使用一个事务

    JDBC中事务默认自动提交,可以用调用setAutoCommit(false)来禁止自动提交。在sqpring中,可以直接在配置文件中配置,然后使用注解就可以了。

事务有四个特性:原子性、一致性、隔离性、持久性。其中重点说一下事务的隔离级别:脏读、不可重复读(update)、虚读(insert)

    使用数据库设置隔离级别相对应

    ISOLATION_READ_UNCOMMITTED: 这是事务最低的隔离级别,它充许令外一 个事务可以看到这个事务未提交的数据。 这种隔离级别会产生脏读,不可重复读和幻像读。

   ISOLATION_READ_COMMITTED: 保证一个事务修改的数据提交后才能被另外 一个事务读取。另外一个事务不能读取该事务未提交的数据。(oracle默认)   

    ISOLATION_REPEATABLE_READ: 这种事务隔离级别可以防止脏读,不可重复 读。但是可能出现幻像读。 它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)。 (mysql默认)  
    ISOLATION_SERIALIZABLE 这是花费最高代价但是最可靠的事务隔离级别。事 务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读

    参考:

    http://wenku.baidu.com/link?url=X7Bmo267lylsKg9jlzrNh40xTaSvRB2DN-1wGe9DI3Znv9jtU06497J7QE0CsW-jF8nkaQYgv0d6p4wJhmyc1jtMKHOh50eZj1J7oRqAJP3

5、无框架下配置web.xml的主要配置内容

<servlet>

    <servlet-name>Hello</ servlet-name>//随便取

    <servlet-name>test.Hello</servlet-name>包名加类名

</servlet>

<servlet-mapping>

    <servlet-name>Hello</ servlet-name>//随便取,与上面的一致

    <url-pattern>/test/hello</servlet></url-pattern>//填写jsp中的跳转地址,/代表服务器的根目录

</ servlet-mapping>

6jspservlet的区别

    答:参考http://blog.chinaunix.net/uid-26284395-id-3038122.html