java面试题-j2ee后端面试题(助力2020面试成功)

更多内容,点击了解: https://how2j.cn/k/j2ee-interview/j2ee-interview-server-side/593.html
步骤1:9种隐式对象,以及他们的用途
步骤2:3种JSP的指令
步骤3:2种JSP的动作
步骤4:doGet()和 doPost的区别,分别在什么情况下调用
步骤5:servlet的init方法和service方法的区别
步骤6:servlet的生命周期
步骤7:页面间对象传递的方法
步骤8:Request常见方法
步骤9:J2EE是技术,还是平台,还是框架
步骤10:Servlet与JSP的关系
步骤11:编写JavaBean的注意事项
步骤12:MVC的各个部分都有哪些技术来实现,分别如何实现
步骤13:JSP中两种include的区别
步骤14:JSP中两种跳转的方式是什么,区别是什么
步骤15:如何实现在Servlet中用正则表达式对e-mail格式进行验证
步骤16:如何处理中文问题
步骤17:简述你对简单Servlet、过滤器、监听器的理解

JSP一共有9个隐式对象,分别是
request,response,out
分别代表请求,响应和输出

pageContext, session,application
pageContext 代表当前页面作用域
session 代表当会话作用域
application 代表当全局作用域

config
config可以获取一些在web.xml中初始化的参数,详见config对象
page
表示当前对象,详见page对象
exception
表示异常对象,详见异常对象

<%@page
JSP的基本设置,比如编码方式,import其他类,是否开启EL表达式

<%@include
包含其他的文件

<%@taglib
使用标签库

<jsp:foward
服务端跳转

<jsp:include
包含其他文件

doGet和doPost都是在service()方法后调用的,分别来处理method="get"和method="post"的请求

Servlet的生命周期中,先调用init进行初始化,而且只调用一次。

接着再调用service,有多少次请求,就调用多少次service

一个Servlet的生命周期由 实例化初始化提供服务销毁被回收 几个步骤组成

java面试题-j2ee后端面试题(助力2020面试成功)

假设是a.jsp传递数据到b.jsp,那么页面间对象传递的方式有如下几种

  1. 在a.jsp中request.setAttribute,然后服务端跳转到b.jsp

  2. 在a.jsp中session.setAttribute,然后跳转到b.jsp, 无所谓客户端还是服务端跳转

  3. 在a.jsp中application.setAttribute, 然后跳转到b.jsp,无所谓客户端还是服务端跳转
    |示例 8 : Request常见方法|
    |------------------|–|

request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有)" +
request.getRequestURI(): 浏览器发出请求的资源名部分,去掉了协议和主机名" +
request.getQueryString(): 请求行中的参数部分,只能显示以get方式发出的参数,post方式的看不到
request.getRemoteAddr(): 浏览器所处于的客户机的IP地址
request.getRemoteHost(): 浏览器所处于的客户机的主机名
request.getRemotePort(): 浏览器所处于的客户机使用的网络端口
request.getLocalAddr(): 服务器的IP地址
request.getLocalName(): 服务器的主机名
request.getMethod(): 得到客户机请求方式一般是GET或者POST

更多的请查看 request常见方法

是平台,上面运行各种各样的技术(servlet,jsp,filter,listner)和框架(struts,hibernate,spring)

Servlet与JSP的关系

JSP就是Servlet

JavaBean就是实体类
无参构造方法
属性都用private修饰,并且都有public的getter和setter

M 模型层代表数据,使用bean,dao等等
V 视图层代表展现,使用html,jsp,css
C 控制层代表控制,使用servlet

一种是静态包含,一种是动态包含

详见:JSP中两种include的区别

分别是服务端跳转和客户端跳转

详见:JSP中两种跳转

public static boolean emailFormat(String email){boolean tag = true;final String pattern1 = "^([a-z0-9A-Z]+[-|//.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?//.)+[a-zA-Z]{2,}$";final Pattern pattern = Pattern.compile(pattern1);final Matcher mat = pattern.matcher(email);if (!mat.find()) {tag = false;}return tag;}

中文问题分几个部分

  1. 提交数据的时候使用UTF-8 编码
  2. 接受数据的时候使用UTF-8 解码
  3. 显示数据的时候使用UTF-8 编码

详细步骤参考 中文问题

Servlet 作用是处理获取参数,处理业务,页面跳转

过滤器的作用是拦截请求,一般会用做编码处理,登陆权限验证

监听器的作用是监听Request,Session,Context 等等的生命周期,以及其中数据的变化

更多内容,点击了解: https://how2j.cn/k/j2ee-interview/j2ee-interview-server-side/593.html

上一篇:java实战教程----仿天猫商城(j2ee)


下一篇:JS兼容IE浏览器的方法