美文网首页
JSP && Struts2

JSP && Struts2

作者: 安然在路上 | 来源:发表于2022-11-18 14:46 被阅读0次

    15年-16用的jsp,后来基本上没用过了,现在都2022年了,我来开倒车了...

    参考JSP开发-廖雪峰

    jsp出现的意义

    Servlet就是一个能处理HTTP请求,发送HTTP响应的小程序,而发送响应无非就是获取PrintWriter,然后输出HTML:

    PrintWriter pw = resp.getWriter();
    pw.write("<html>");
    pw.write("<body>");
    pw.write("<h1>Welcome, " + name + "!</h1>");
    pw.write("</body>");
    pw.write("</html>");
    pw.flush();
    

    那有没有更简单的输出HTML的办法?

    有!
    我们可以使用JSP。
    JSP是Java Server Pages的缩写,它的文件必须放到/src/main/webapp下,文件名必须以.jsp结尾,整个文件与HTML并无太大区别,但需要插入变量,或者动态输出的地方,使用特殊指令<% ... %>。

    语法

    整个JSP的内容实际上是一个HTML,但是稍有不同:

    • 包含在<%--和--%>之间的是JSP的注释,它们会被完全忽略;
    • 包含在<%和%>之间的是Java代码,可以编写任意Java代码;
    • 如果使用<%= xxx %>则可以快捷输出一个变量的值。

    内置变量

    JSP页面内置了几个变量:

    • out:表示HttpServletResponse的PrintWriter;
    • session:表示当前HttpSession对象;
    • request:表示HttpServletRequest对象。
    <html>
    <head>
        <title>Hello World - JSP</title>
    </head>
    <body>
        <%-- JSP Comment --%>
        <h1>Hello World!</h1>
        <p>
        <%
             out.println("Your IP address is ");
        %>
        <span style="color:red">
            <%= request.getRemoteAddr() %>
        </span>
        </p>
    </body>
    </html>
    

    指令

    page指令引入Java类

    <%@ page import="java.io.*" %>
    <%@ page import="java.util.*" %>
    

    include指令可以引入另一个JSP文件

    <html>
    <body>
        <%@ include file="header.jsp"%>
        <h1>Index Page</h1>
        <%@ include file="footer.jsp"%>
    </body>
    

    JSP Tag

    <c:out value = "${sessionScope.user.name}"/>
    

    JSP Tag需要正确引入taglib的jar包,并且还需要正确声明,使用起来非常复杂,对于页面开发来说,不推荐使用JSP Tag,因为我们后续会介绍更简单的模板引擎,这里我们不再介绍如何使用taglib。

    Struts2

    取值

    struts2中可以使用的取值方式:

    • jsp内置对象取值
    • jstl标签+EL表达式取值
    • struts2标签+OGNL表达式

    拦截器interceptor & 过滤器 filter

    相同点:

    1. 都是一种java类
    2. 都能拦截客户端发给服务器端的请求
    3. 拦截到请求之后都可以做一些相应的处理,最后还可以把这个请求放行.
    4. 都需要实现各自相应的接口以及在相应的配置文件中配置.

    不同点:

    1. 拦截器(interceptor)是struts2框架中的定义的,过滤器(filter)是web里面的对象,是J2EE标准里面定义的.

    2. 拦截器(interceptor)只会拦截器访问action的请求,过滤器(filter)能够拦截所有请求.

    3. 拦截器(interceptor)定义在struts.xml文件中,过滤器(filter)定义在web.xml文件中.

    4. 拦截器(interceptor)对象的创建、调用、销毁是struts2框架负责的,过滤器(filter)对象的创建、调用、销毁服务器负责的.

    相关文章

      网友评论

          本文标题:JSP && Struts2

          本文链接:https://www.haomeiwen.com/subject/tkpptdtx.html