Web基础(二)----JSP入门

一、servlet输出动态页面

package com.ken.demo;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HtmlServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter writer = response.getWriter();
		// 动态的响应页面
		writer.write("<!DOCTYPE html>");
		writer.write("<html>");
		writer.write("<head>");
		writer.write("<meta charset='UTF-8'>");
		writer.write("<title>Insert title here</title>");
		writer.write("</head>");
		writer.write("<body>");
		writer.write("<h1>这个页面很繁琐</h1>");
		writer.write("</body>");
		writer.write("</html>");
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}
}

二、jsp的来源


三、jsp脚本和注释

3.1 脚本

1)<%java代码%> ----- 内部的java代码翻译到service方法的内部

2)<%=java变量或表达式> ----- 会被翻译成service方法内部out.print()

3)<%!java代码%> ---- 会被翻译成servlet的成员的内容

3.1.1 <%java代码%>

创建index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-16"
	pageEncoding="UTF-16"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-16">
<title>Insert title here</title>
</head>
<body>
	<%
		int i = 0;
		System.out.print(i);
	%>
</body>
</html>

访问index.jsp



3.1.2 <%=java变量或表达式>

<%@ page language="java" contentType="text/html; charset=UTF-16"
	pageEncoding="UTF-16"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-16">
<title>Insert title here</title>
</head>
<body>
	<%
		int i = 0;
		System.out.print(i);
	%>
	
	<%=i %>
</body>
</html>

3.1.3 <%!java代码%>

<%@ page language="java" contentType="text/html; charset=UTF-16"
	pageEncoding="UTF-16"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-16">
<title>Insert title here</title>
</head>
<body>
	<%
		int i = 0;
		System.out.print(i);
	%>

	<%=i%>
	<%=1 + 1%>

	<%!
		String str = "hello china";
	%>
	<%=str%>
</body>
</html>

3.2 jsp注释

不同的注释可见范围是不同

1)Html注释:<!--注释内容-->---可见范围 jsp源码、翻译后的servlet、页面 显示html源码

2)java注释://单行注释  /*多行注释*/ --可见范围 jsp源码 翻译后的servlet

3)jsp注释:<%--注释内容--%>----- 可见范围 jsp源码可见

四、jsp运行原理

jsp本质就是servlet(面试)

jsp在第一次被访问时会被Web容器翻译成servlet,再执行

过程:

第一次访问---->helloServlet.jsp---->helloServlet_jsp.java---->编译运行

PS:被翻译后的servlet在Tomcat的work目录中可以找到




这个类继承了httpServlet,里面有对应的init(), destroy(), service()等方法。


jsp脚本里写的东西都会在这里以java代码出现。
带感叹号的脚本会变成成员变量,不带感叹号的脚本就是局部变量。


我们到tomcat的conf包下找到web.xml



可以看出来,访问jsp是通过servlet的。
再说jsp运行原理:
当你访问服务端的某个jsp,这个jsp如果是第一次被访问,会去tomcat容器的work目录下找有没有和它对应的servlet的java文件。有,则直接用这个servlet响应;没有,则把这个jsp翻译成对应的servlet的java文件,再响应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值