javaweb常见易错问题大汇总

1、如何修改tomcat访问端口? Answer: conf/server.xml

2、如何配置tomcat Manager访问用户? Answer: conf/tomcat-users.xml 主要应用调试管理上,上线系统中该功能一定关闭掉

3、发布工程到tomcat的三种方式 Answer: 虚拟目录配置 1) 拷贝网站目录到 tomcat/webapps (将网站目录打成war包 zip格式压缩包) 2) 配置conf/server.xml <Host>中配置 <Context path="" docBase="" /> 3) 独立配置文件 conf下 新建Catalina目录 在Catalina目录下新建主机目录 在目录下新建xml(文件名就是虚拟目录path)

4、在tomcat配置虚拟主机的步骤? Answer: 1) 在conf/server.xml 配置 <Host name="域名" appBase="虚拟主机位置" > 2) 修改c:/windows/system32/drivers/etc/hosts文件 * 配置hosts时,每行前面不能# 3) 为虚拟主机配置ROOT(三种方式)

5、tomcat启动时端口被占用如何处理 Answer: * Tomcat服务器启动时需要多个端口 1) 查看一下 哪个端口被占 8005 2) Fport 查看哪个端口被占用了 (DOS命令) netstat /ano tasklist 3) 通过任务管理关闭 (windows服务 httpd) ----- 任务管理器无法关闭服务,通过服务管理停止服务

6、Servlet的生命周期 Answer: init(ServletConfig) service(ServletRequest,ServletResponse) destroy 这三个方法什么时间执行 init默认第一访问时,加载Servlet调用 (配置<load-on-startup>修改随服务器启动加载) service 每次http请求,调用 ---- 多线程调用方式 destroy 服务器停止时 调用

7、编写Servlet步骤 Answer: 1) class extends HttpServlet 2) 覆盖doGet和doPost (如果代码逻辑一样,互相调用) 3) 配置web.xml <servlet> <servlet-mapping>

8、service和doGet、doPost的关系 Answer: service Servlet生命周期定义的 ,而实现类HttpServlet 定义doGet和doPost HttpServlet覆盖了service方法,根据页面请求方式调用相应doGet和doPost

9、为什么建议覆盖无参数init方法,而不覆盖init(ServletConfig)方法 Answer: 有参数init对ServletConfig进行一些操作,在有参数init方法中调用了无参数init,为了简化编程,直接覆盖无参数init

10、ServletConfig和ServletContext有何区别 Answer: ServletConfig为每个Servlet提供一些初始化参数信息,ServletContext每个web应用只创建一个实例,它可以完成在多个web资源中共享数据,为整个web应用提供初始化信息,提供请求分发方法

11、转发和重定向有何区别 Answer: 在javaweb开发中转发和重定向都是资源访问方式,转发是在服务器内部进行的,只有一次请求和一次响应,客户端路径不会改变,转发只能访问本站点内部资源。 重定向 基于两次请求和两次响应,服务器通知客户端重定向到某个资源,客户端路径改变,重定向也可以定向到本站点外部资源 request.getRequestDispatcher.forward response.sendRedirect 开发中应用:可以用重定向的地方(重定向本站点内)都可以使用转发,当你需要通过请求传递数据时(request.setAttribute),必须使用转发

12、常用状态码200、302、304、404、500都是什么含义 Answer: 200 正常 302 重定向 304 缓存 404 找不到 500 服务器出错

13、如何防止网页盗链 Answer: 通过request.getHeader("referer")

14、如何设置网页的过期时间 Answer: response.setDateHeader("expires",毫秒值); 过期时间毫秒值:当前时间+还有多长时间过期

15、response中setCharacterEncoding和setContentType有何区别 Answer: setCharacterEncoding设置响应中字符编码,但是不会通知客户端 setContentType 用来设置发送给客户端数据文件类型,同时指定编码格式,浏览器会根据指定编码格式查看文件

16、编写一个下载Servlet,下载中文名称的文本文件注意事项? Answer: 文本文件是浏览器支持的类型,response.setHeader("content-disposition","attachment;filename=xxx"); 如果文件名称为中文,在filename=xxx 拼接文件名称时,需要对中文文件名 URLEncoder编码

17、网站登录注册时为什么需要验证码技术? Answer: 防止一些恶意攻击

18、如何解决用户提交请求数据的乱码问题 Answer: post --- request.setCharacterEncoding get ---- 手动转码 URL/new String  、 修改tomcat默认解码集 URIEncoding=xxx

19、http://url?name=zhangsan+lisi ----------使用request.getParameter("name")的获得结果 Answer: zhangsan lisi

20、isCommitted有何含义,当其为true时,可以执行下面的哪个方法 forward、redirect、include Answer: isCommited用来判断响应输出内容是否已经到达客户端 ,如果为true 不能进行forward redirect;可以进行include操作

1、为什么要使用Cookie和Session技术 Answer: HTTP协议本身是无状态的,服务器要管理客户端状态,Cookie和Session两种管理客户状态技术

2、Cookie技术的原理? Answer: 1) 客户端访问服务器资源 2) 服务器指定向客户端写出Cookie (response) ---- 在http响应中包含cookie头信息 3) 客户端收到服务器返回cookie信息后,将cookie默认保存浏览器内存中 (通过设置cookie maxAge 浏览器将cookie保存到硬盘上) 4) 客户端下次访问服务器时,自动携带cookie信息

3、Cookie的生命周期? Answer: 默认Cookie是会话Cookie,当会话结束(浏览器关闭) Cookie清除 如果设置Cookie maxAge 就会根据设置时间,计算cookie过期时间,当cookie过期后,浏览器清除cookie

4、会话Cookie和持久Cookie区别 Answer: 会话cookie 内存里,持久cookie 硬盘里

5、什么是第一方Cookie和第三方Cookie Answer: 第一方Cookie:访问A 产生A Cookie 第三方Cookie:访问A 产生B Cookie

6、Session和Cookie的区别 Answer: Cookie信息保存客户端,Session信息保存到服务器端,Session技术基于Cookie实现,将session唯一标识sessionid以cookie形式写回客户端

7、Session的生命周期(Session什么时间创建,什么时间销毁) Answer: 创建session : request.getSession 销毁session : 1) 服务器关闭 2) session过期(服务器端过期) 3) session.invalidate session过期时间两种设置方式:1) session.setMaxInactiveInterval(秒) 2) 配置web.xml <session-config> 单位分钟

8、Session的实现原理 Answer:  为每个会话创建一个单独session对象,每个对象有一个唯一的session id, session id以cookie形式写回客户端,从而完整session对象追踪

9、关闭浏览器是否就销毁了Session Answer: 不是 默认如果cookie没有持久化,关闭浏览器销毁客户端内存中cookie(session id), 服务器session仍然存在!

10、禁用Cookie,Session就无法使用了吗 Answer: URL重写

11、session.removeAttribute 和 session.invalidate区别 Answer : removeAttribute 从当前session中移除一个数据,invalidate销毁当前session对象,移除其中所有数据

12、防止表单防刷新原理(令牌机制) Answer: 客户端表单生成时,生成一个唯一标示(令牌),同时保村令牌到session和表单隐藏元素内,当表单提交时,取出表单的令牌号和session中令牌号比对,一致则表单提交有效。session中令牌号使用一次后,就将清除。

13、一次性验证码的原理 Answer: 生成验证码时,同时保存验证码到session ,用户提交验证码后,就和session中比较

14、JSP的运行原理? Answer: JSP在被访问时,首先服务器(tomcat)加载, 由服务器翻译成相应Servlet程序,编译执行

15、JSP和Servlet区别? Answer: JSP是翻译成Servlet执行的,Servlet是java程序,编写java代码比较方便,JSP支持HTML语法,所以主要用来生产动态网页。

16、JSP的九个内置对象是什么? Answer: page request session application response pageContext out config exception

17、JSP中的四种数据范围 Answer: page request session application

18、out和response.getWriter区别 Answer: out向浏览器输出,基于response.getWriter完成的。但是out和response.getWriter有着分别缓存区,向浏览器输出内容时,先输出response.getWriter内容,再输出out内容

19、如何设置web工程的错误友好页面 Answer: 错误页面 :1、在JSP内部通过errorPage isErrorPage配置 2、在web.xml 配置<error-page> 设置错误页面 JSP内部错误页面只能解决500错误,web.xml还解决404错误

20、include指令和jsp:include区别 Answer: include指令 静态引入,在JSP源码阶段引入,引入后一起完成翻译过程 jsp:include 动态引入,在程序运行时,引入目标资源,引入目标资源运行结果

 

 

 

 

 

 

posted @ 2012-11-24 20:14  Andye  阅读(3523)  评论(0编辑  收藏  举报