JSP简介
为什么要学习JSP:
默认的HTML技术是无法将后台的数据直接渲染在前台的,例如在后台的request容器,session容器存了东西,要想在前台拿出来渲染,单独利用HTML无法实现的,所以需要借助额外的知识点才可以实现: 例如JSP技术,AJAX技术等
JSP的组成
SP组成: HTML + Java + JSP本身
不仅可以写html代码还可以写java代码还可以写JSP代码
但是一般来说 不会再JSP里面写Java代码,最多写点JSP代码
JSP的本质:本质就是一个Servlet .运行流程:现将JSP解析成servlet再运行
JSP现状
25年前的技术,早已过时,无人问津。所以本书的内容仅做了解
技术领域:存在即合理。 即使已经过时了。但是过时的原因仅仅是:后人借鉴了它,然后超过了它,原因:效率极低。现在的项目都是讲究一个前后端分离。 前台只操心前台,后台只操心后台
EL表达式:
知识点1:仅仅存在于JSP中,脱离了JSP无法运行。
知识点2:可以直接将后台数据渲染在页面上。
知识点3:语法: 美元符号{ xxx }
测试EL表达式写一个servlet类:
@WebServlet("/AServlet")
public class AServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setAttribute("info1","你好111");
req.getSession().setAttribute("info1","你好222");
ServletContext context = req.getServletContext();
context.setAttribute("info1","你好333");
req.getRequestDispatcher("2.jsp").forward(req,resp);
}
}
例如:可以实现基本的运算:
${1+1+1} ${1*5*2} ${"111" + "222"}
例如:可以轻松地获取后台容器的数据:
<a href="AServlet">先存几个</a>
${info1} ~~~ ${info2} ~~~ ${info3}
如果存在 不同的容器 但是key相同 。那么可以在key的前面加上前缀即可:
例如
${requestScope.info1} ~~~ ${sessionScope.info1} ~~~ ${applicationScope.info1}
例如:可以轻松的获取url地址上的相关参数
<a href="update.jsp?id=123&name=张三&age=18">修改页面
下面的写法是获取容器里面的id,但是现在我们要获取url地址里面相关参数
${id}
如果想要获取url地址上的参数,那么只需要加上前缀 param
${param.id} ~~${param.name} ~~${param.age} ~~