jsp笔记三

来源:互联网 发布:java经典书籍 编辑:程序博客网 时间:2024/06/16 00:18

一:转发与重定向的区别?
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掉之前部署的servlet3.建议:    1)优先使用绝对路径    2)不要使用硬编码,使用request.getContextPath获取应用名

=============下面为jsp标签内容============
一:jsp标签
代替jsp文件中的代码,使jsp文件更加简洁,便于维护。
二:EL表达式
1.一种简单的计算规则,给jsp标签赋值,也可直接输出。
2.el使用方法?
(1)读取bean属性:依次从pageContext

原创粉丝点击