JSP中的注释有哪两种?有什么区别?
答:
(1)<!-- 注释内容 --> 只能够注释前端html代码,而<%-- 注释内容 --%> 既可以注释前端html代码,还可以注释java代码
(2)<!-- 注释内容 --> 在查看网页源代码的时候,可以看到,具有一定的安全问题,而<%-- 注释内容 --%> 在查看网页源代码的时候,不可以看到,是安全的
谈一下什么是jsp指令/jsp脚本片段/jsp声明/jsp表达式?
答:
jsp指令:
语法是:<%@ 指令名 %>
三大指令:page指令,include指令,taglib指令
jsp脚本片段:
在脚本片段中书写的代码,就如同在某一个方法体中书写java代码,因此jsp脚本片段中不能定义方法。
语法是:<% java代码 %>
jsp声明:
由于jsp脚本片断中不能够定义方法,为了弥补这个缺陷,发生一个Jsp声明的语法,在Jsp声明中可以定义方法。
jsp表达式:
语法是:<%= %>
重定向与转发有什么区别?
答:
(1)重定向时地址栏会发生改变;转发地址栏不会发生改变。
(2)重定向请求服务器2次;转发只请求服务器一次。
(3)重定向调用的是response对象中的方法;转发调用的是request对象中的方法。
配置Servlet虚拟路径的方式有哪些?
答:
方式一:通过注解
@WebServlet(/user.do)
方式二:通过配置文件 web.xml文件
<servlet>
<servlet-name> user </servlet-name>
<servlet-class> cn.java.User </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> user </servlet-name>
<url-pattern>/user.do </url-pattern>
</servlet-mapping>
get与post请求有哪些区别?
答:
(1)get请求:数据会在地址栏上显示出来,因此不要传递敏感数据。
(2)get请求:传递的数据量有限,因此对于有文件上传的数据时不要使用get请求。
(3)post请求:传递的参数不会在地址栏中显示出来,因此可以传递敏感数据。
(4)post请求:传递的数据可以有很多,因此文件上传是可以使用Post请求。
文件存放在WEB-INF与WebContent(WebRoot)下的区别有哪些?
答:
(1)文件存放到WebContent文件夹下可以直接访问;但是存放到WEB-INF的文件不能够直接访问,一般需要通过转发来访问。
(2)文件保存到WEB-INF下更加安全。
如何解决get请求与post请求中文乱码问题?
答:
(1)POST请求中文乱码问题:
request.setCharacterEncoding(“UTF-8”);
response.setCharachterEncoding(“UTF-8”);
response.setContentType(“text/html;charset=UTF-8”);
(2)请求中文乱码问题:
修改tomcat的编码(ISO8859-1)--->UTF-8:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
Servlet的生命周期?
答:
服务器接受客户端发送的请求后,服务器创建一个servlet对象,创建完成后不会立马销毁,而是执行servlet中的init()方法(只执行一次),然后根据doGet或者doPost调用servlet中的service()方法,最后调用servlet中的detroy()方法,销毁工程。
Jsp与Servlet有哪些区别?
答:
(1)jsp与servlet中都可以书写java代码与标签,jsp擅长书写标签等;servlet擅长书写java代码。
(2)jsp其实本质上就是一个servlet。
Jsp中的9大内置对象有哪些?
答:
final javax.servlet.http.HttpServletRequest request;
final javax.servlet.http.HttpServletResponse response;
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
Exception;
Jsp中动态引入与静态引入有哪些区别?
答:
静态引入:<%@ include file="路径" %>
首先将多个jsp文件合并为一个Jsp,合并完成之后再将合并好的Jsp文件翻译成servlet。
动态引入:<jsp:include page="路径">
首先将多个jsp文件分别翻译成对应的servlet,然后在运行的时候再将多个servlet的内容动态的拼接起来。
Java中的有哪些域对象?
答:
java中有4大域对象,按照生命周期由小到大分别为:page域--->request--->session---->application
域对象的特点:
(1)域对象由服务器创建,不由程序员New
(2)域对象可以存取数据:域对象.setAttribute(String,Object)、域对象.getAttribute(String)
(3)域对象都有范围
session与cookie有哪些区别?
答:
(1)session将数据保存到服务器端,cookie将数据保存到用户浏览器中。
(2)session底层是基于cookie的。
(3)cookie可以用来做xxx小时免登陆,session主要存放用户登录成功的标记。
request对象中的主要方法有哪些?
答:
(1)获取用户的请求方式
request.getMethod()
(2)获取远程用户的ip地址
request.getRemoteAddr()
(3)获取协议:http
request.getScheme()
(4)获取端口号:
request.getServerPort()
(5)获取服务器上的工程名
request.getContextPath()
Jsp中有哪些动作?作用分别是什么?
答:
jsp中共有6种基本动作:
jsp:include-------->动态引入
jsp:useBean-------->寻找或者实例化一个JavaBean
jsp:setProperty---->设置JavaBean的属性
jsp:getProperty---->输出某个JavaBean的属性
jsp:forward-------->把请求转到一个新的页面(转发)
jsp:plugin--------->根据浏览器类型生成Java插件的Object对象
getParameter与getAttribute方法有什么区别?
答:
(1)getParameter:从request对象中获取表单页面或者其他方式传递过来的参数,当获取的参数信息不存在时返回值为null
(2)getAttribute(String key):获取保存在域对象(page、request、session、application)中的数据
区别:
(1)getParameter是从request对象中获取参数;getAttribute是从域对象中获取之前保存好的数据
(2)getParamer返回值类型为String,getAttribute返回值类型为Object
什么是EL表达式
答:
EL表达式:
表达式语言。
作用:
在Jsp中虽然可以书写java代码,但是不推荐这么做。EL可以代替部分的java代码,而且EL表达式也可以从域中获取数据,当获取的数据不存在时返回的是””。
JSTL常用标签有哪些?
答:
JSTL:java标准的标签库
<c:if test=””>
<c:forEach>
<c:redirect>
<c:choose>
<c:when>
<c:otherwise>