up:: web开发基础内容概述

在没有JSP的时候,Servlet只能通过request.getWriter().println("");把后台的信息添加到响应中去;自然可以在其中各种拼凑html语句和Java语句;;;

但是,上述过程十分麻烦,容易出错;

而一般网页内容习惯使用html文件,但是单纯的html页面,无法很好的和后台进行交互;~~~~~( _ _ 这儿有时间,好好叙述下__ )

所以JSP应运而生,在JSP中,可以将html和Java代码混在一起啦;

上面的话有问题,后续需要修改!!!!!


1:Servlet的痛点:


面对servlet的缺点,JSP应运而生;

2:JSP简介:


3:第一个JSP示例:


4:JSP执行流程:

Tomcat按照一定的规则将JSP的语法转换成了Servlet的源代码:

上面,Java代码会原封不动,其他诸如<h1>,<%=a%>则按语法转成对应的Java语句;

JSP的本质就是Servlet。(而且,目前JSP已经被抛弃了。。。。)


5:JSP基本语法:

(1).JSP代码块: <% %>

<% %>里面的Java代码需要增加分号;如<% String a = “ew”; %>

(2).JSP声明构造块 <%! %>

(3).JSP输出指令 <%= %>

<%= %>标签内是不需要添加分号的;<%= this.getName() %>就行了。

(4).JSP处理指令 <%@ %>

写在页面顶部!

JSP常用的指令有:

JSP注释:


6:JSP案例

prime.jsp:代码如下:

(1) contentType=“text/html;charset=utf-8”:设置编码方式,可以显示中文;

 
    <%@ page import="java.util.*,java.text.*" contentType="text/html;charset=utf-8"%>
    <%
    	for(int i=2;i<=1000;i++){
    		boolean flag = isPrime(i);
    		if(flag){
    			primes.add(i);
    		}
    	}
    %>
 
    <%!
    	List<Integer> primes = new ArrayList<Integer>();
    	boolean isPrime(int num){
    	boolean flag = true;
    	for(int j = 2;j<num;j++){
    		if(num%j==0){
    			flag = false;
    			break;
    		}
    	}
    	return flag;
    }
    %>
 
    <%
    	for(int p:primes){
    		//out.println("<h1>"+p+"是质数。</h1>");
    %>
    		<h1><%=p %>是质数</h1>
    <%
    	}
    %>

7:JSP页面重用

如下示例:

news.jsp:

    <%@ page contentType="text/html;charset=utf-8" %>
    <%@ include file="include/header.jsp" %>    <%-- 引入页头的JSP--%>
    <%-- 演示页面重用--%>
    <%
    	out.println("<h1>新闻标题</h1>");
    	out.println("<p>新闻正文</p>");
    %>
    <%@ include file="include/footer.jsp" %> <%-- 引入页脚的JSP--%>

header.jsp:

 
    <%@ page contentType="text/html;charset=utf-8" %>
    要闻|推荐|财经|娱乐 <hr/> <%-- 模拟的页头--%>

footer.jsp:

 
    <%@ page contentType="text/html;charset=utf-8" %>
    <hr/>
    copyright 1999-2021    <%-- 模拟的页脚--%>

include指令背后做了什么?


注解:本篇博客的代码放在了:firstJsp这个远程仓库中了;多看例子,主要是整体把握,细节没必要硬记忆;