一:转发与重定向的区别?
1.转发所涉及的web组件可以共享同一个request和response对象(HTTP中“一次请求,一次响应”)
2.转发的地址有限制,重定向的地址是任意的
3.转发之后,地址栏不变
二:使用处理servlet类中出现的异常。
1)抛给容器处理(系统异常)网络,数据库,系统
java.lang.NumberFormatException
/error.jsp
2)自己处理(应用异常)——转发
request.setAttribute(“e”, ” hey,young man”);
request.getRequestDispatcher(“error2.jsp”).forward(request, response);
<%=request.getAttribute(“e”)%>
三:servlet中的路径问题
1.从应用名开始(连接,表单,重定向),从应用名之后(转发)
1)相对路径:不以/的路径
2)绝对路径:以/开头的路径
连接:
<a href="<%=request.getContextPath()%>/app1/a2.jsp" >使用绝对路径</a>
表单:
<form action="<%=request.getContextPath()%>/path" method="post">
username:
<input name="username"/><br>
<input type="submit" value="comfirm"/>
</form>
重定向:
response.sendRedirect(request.getContextPath()+"/app2/aaa/a4.jsp");
转发:
request.setAttribute("a4", userName);
request.getRequestDispatcher("/app2/aaa/a4.jsp").forward(request, response);
<%=request.getAttribute("a4")%>
2.问题:在webapp下新建文件a2.jsp的情况下,绝对路径为什么直接是在servlet07下???
<a href="/servlet07/a2.jsp" >访问a2(使用绝对路径)</a>
appname
web-INF
classes
lib
web.xml
应用名改回servlet07失败?????
--------------因为在容器tomcat7.0srever中没有remove掉之前部署的servlet
3.建议:
1)优先使用绝对路径
2)不要使用硬编码,使用request.getContextPath获取应用名
=============下面为jsp标签内容============
一:jsp标签
代替jsp文件中的代码,使jsp文件更加简洁,便于维护。
二:EL表达式
1.一种简单的计算规则,给jsp标签赋值,也可直接输出。
2.el使用方法?
(1)读取bean属性:依次从pageContext