用最简单的话语教你使用JSP(上)

简介: JSP1.什么是JSP2. JSP原理3. JSP基础语法4. JSP指令5. 九大内置对象6. JSP标签、JSTL标签、EL表达式6.1 EL表达式${}6.2 JSP标签6.3 JSTL表达式

1.什么是JSP


Java Server Pages:Java服务器端页面,和servlet一样,用于动态web技术

最大的特点:


  • 写JSP就像在写HTML


  • 区别:
  • HTML只给用户提供静态的数据
  • JSP页面中可以嵌入Java代码,为用户提供动态数据


2. JSP原理


思路:看一下JSP到底是怎么执行的


  • 代码层面没有任何问题


  • 服务器内部工作


  • Tomcat中有一个work目录;
  • IDEA中使用Tomcat的会在IDEA的tomcat中产生一个work目录。找到我们想要找的web项目下的jsp。我们会发现页面转变成了Java程序


  • 浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet


微信图片_20211229182641.png


  • JSP最终也会被转换成为一个Java类;


  • JSP本质上就是一个Servlet


//初始化
public void _jspInit(){
}
//销毁
public void _jspDestroy(){
}
//JSPService
public void _jspService(.HttpServletRequest request,final javax.servlet.http.HttpServletResponse response){
}


1.判断请求


2.内置了一些对象


final javax.servlet.jsp.PageContext pageContext;//页面上下文
javax.servlet.http.HttpSession session = null;//session
final javax.servlet.ServletContext application;//applicationContext
final javax.servlet.ServletConfig config;//config
javax.servlet.jsp.JspWriter out = null;//out
final javax.lang.Object page = this;//page:代表当前页
HttpServletRequest request;//请求
final javax.servlet.http.HttpServletResponse response//响应
javax.servlet.jsp.JspWriter _jsp_out = null;
javax.servlet.jsp.PageContext _jspx_page_context = null;


3.输出页面前的增加代码


response.setContentType("text/html");//设置响应的页面类型
pageContext = _jspFactory.getPageContext(this, request, response,null,true,8192,true);
_jsp_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;


4.以上的这些对象我们可以在JSP页面中直接使用


<%
String name = "hhh";
%>
name : <%=name%>


在JSP中只要是Java代码就会原封不动的输出;如果是HTML代码,就会被转换成


out.write("<html>\r\n");


这样的格式输出


  • 我们导入源码后发现它继承了一个HttpJspBase。这个包是在org.apache.jasper.runtime下


3. JSP基础语法


任何语言都有自己的语言,Java中有,JSP作为java技术的一种应用,它拥有一些自己扩充的语法(了解),Java所有语法都支持!


JSP表达式


<%-- JSP表达式 
    作用:用来将程序的输出,输出到客户端
  --%>
  <%= new java.util.Date()%>


JSP脚本片段


<%--jsp 脚本片段--%>
  <%
    int s = 0;
    for (int i = 0; i <= 100 ; i++) {
      s += i;
    }
    out.println("<h1>s=" + s +"</h1>");
  %>


脚本片段的再实现


<%
    int x = 10;
    out.println(x);
  %>
  <h1>hhh</h1>
  <%
    /*这里如果还是x的话会报错*/
    int y =20;
    out.println(y);
  %>
<%--在代码中嵌入HTML元素--%>
  <%
    for (int i = 0; i <3 ; i++) {
  %>
<%--EL表达式--%>
<%--<%=i%>也可以写成${=i}--%>
  <h1>Hello,<%=i%></h1>
  <%
    }
  %>


JSP声明


<%!
    static{
      System.out.println("LoadingServlet!");
    }
    private int globalVar = 0;
    public void hxl(){
      System.out.println("进入了这个方法!");
    }
  %>


JSP声明:会被编译到JSP生成Java的类中,其他的就会被生成到_jspService方法中


在Jsp嵌入Java代码即可。


<%%>
<%=%>
<%!%>
<%--注释--%>


JSP的注释不会在客户端显示,但是HTML的注释不会显示。

相关文章
|
XML SQL Java
用最简单的话语教你使用JSP(下)
用最简单的话语教你使用JSP(下)
用最简单的话语教你使用JSP(下)
|
1月前
|
Java
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
21 0
|
3天前
|
前端开发 JavaScript Java
Java与Web开发的结合:JSP与Servlet
Java与Web开发的结合:JSP与Servlet
8 0
|
17天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
1月前
|
Java
奶茶管理系统【JSP+Servlet+JavaBean】(Java课设)
奶茶管理系统【JSP+Servlet+JavaBean】(Java课设)
12 1
|
1月前
|
Java
酒店客房预订管理系统【JSP+Servlet+JavaBean】(Java课设)
酒店客房预订管理系统【JSP+Servlet+JavaBean】(Java课设)
12 0
|
1月前
|
Java
竞赛组队系统【JSP+Servlet+JavaBean】(Java课设)
竞赛组队系统【JSP+Servlet+JavaBean】(Java课设)
16 0
|
1月前
|
Java
大学生日记管理系统【JSP+Servlet+JavaBean】(Java课设)
大学生日记管理系统【JSP+Servlet+JavaBean】(Java课设)
15 0
|
2月前
|
移动开发 JavaScript 前端开发
HTML ,XHTML,HTML5简介,js,JSP与Servlet的关系理解
HTML ,XHTML,HTML5简介,js,JSP与Servlet的关系理解
50 5
|
3月前
|
Java
jsp页面中使用jstl标签报错:javax.servlet.jsp.JspTagException
jsp页面中使用jstl标签报错:javax.servlet.jsp.JspTagException
15 0