JavaWeb -- 搭建Web环境 | JSP输出

一、URL

计算机通过 URL(Uniform Resource Locator,统一资源定位符)实现资源访问,URL 唯一能识别Internet上具体的计算机、目录或文件夹位置的命名约定。
在这里插入图片描述

二、B/S程序架构

B/S(Browser/Server,浏览器/服务器模式)结构是随着互联网的发展,Web 出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。只需要在自己电脑或手机上安装一个浏览器,就可以通过 Web Server 与数据库进行数据交互。

B/S架构采用请求/响应模式进行交互。
在这里插入图片描述

三、Web服务器

3.1 定义

Web 服务器是可以向发出请求的浏览器提供文档的程序,还提供网上的信息浏览服务。

3.2 常用的Web服务器

  • Microsoft:IIS
  • Apache:Tomcat
  • Oracle:WebLogic
  • IBM:WebSphere
  • Nginx

3.3 Tomcat服务器

3.3.1 定义

Tomcat服务器是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是一个用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

3.3.2 特点

  • Apache Jakarta的开源项目
  • 轻量级应用服务器
  • 开源、稳定、资源占用小

3.3.3 安装后的目录结构

下载地址:http://tomcat.apache.org/

在这里插入图片描述

3.3.4 配置

默认端口号:8080。
通过配置文件 server.xml 修改 Tomcat 端口号。
在这里插入图片描述

3.3.5 启动

  • bin\startup.bat
  • 访问http://localhost:8080查看Tomcat主页

3.3.6 停止Tomcat

  • bin\shutdown.bat

四、JSP

4.1 定义

JSP(JavaServer Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于 HTTP 的应用程序。JSP 是运行在服务器端的Java页面,用 HTML 嵌套 Java 代码实现

Java 服务器页面(JSP)是 HttpServlet 的扩展。由于 HttpServlet 大多是用来响应 HTTP 请求,并返回 Web 页面(例如 HTML、XML),所以不可避免地,在编写 servlet时会涉及大量的HTML内容,这给 servlet 的书写效率和可读性带来很大障碍,JSP便是在这个基础上产生的。其功能是使用 HTML 的书写格式,在适当的地方加入 Java 代码片段,将程序员从复杂的 HTML 中解放出来,更专注于 servlet 本身的内容。

JSP 在首次被访问的时候被应用服务器转换为 servlet,在以后的运行中,容器直接调用这个 servlet,而不再访问 JSP 页面。JSP 的实质仍然是 servlet。

4.2 工作原理

在这里插入图片描述

4.3 page指令

通过属性定义了 JSP 的特性,实现与 JSP 容器的通信。

语法:

<%@ page language="属性值" import="属性值" contentType="属性值"%>

属性:

  • language:指定JSP页面使用的脚本语言
  • import:通过该属性来引用脚本语言中使用到的类文件
  • contentType:用来指定页面的 MIME 类型,以及字符编码方式

示例:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Arrays" %>
<%@ page import="java.util.List" %>

4.4 使用JSP实现输出

代码中有详细注释哦!

4.4.1 示例1

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Arrays" %>
<%@ page import="java.util.List" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp</title>
	<!-- 使用<%%>声明局部变量、使用<%!%>声明全局变量 -->
	<%
		int age=18;
		String name="Jack";
		int[] arr = new int[]{1,2,3,4};
	%>
</head>
<body>
	<h1>这是我的第一个jsp页面!</h1>
	<h2><a href="/day_0903_web1/index2.jsp">演示Java代码和html标签的混合使用</a></h2>
	<%
		// Java注释不可见
		out.println(name+"<br />");	// ln输出后换行
		out.println(age);
	%>
	
	<!-- Java向页面中输出内容的另外一种格式 -->
	<!-- 仅向页面中输出内容,连分分号都不需要 -->
	
	<%=name %>
	
	<!-- 向页面中输出数组中的内容 -->
	<!-- 1 利用循环输出 -->
	<%
		for(int i=0; i<arr.length; i++){
			out.print(arr[i]+" ");
		}
	%>
	<!-- 2 Arrays -->
	<%=Arrays.toString(arr) %>
</body>
</html>

效果:
在这里插入图片描述

4.4.2 示例2\

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Map.*" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>java和html混写练习</title>
<%
	List names = new ArrayList();
	names.add("Jack");
	names.add("Rose");
	names.add("Tom");
	List ages = new ArrayList();
	ages.add(18);
	ages.add(19);
	ages.add(20);
%>
</head>
<body>
	<!-- 向页面中输出一个表格 -->
	<!-- Java代码中输出html标签 -->
	<%
		out.print("<table>");
		out.print("<tr><td>编号</td><td>姓名</td><td>年龄</td></tr>");
		for(int i=0; i<names.size(); i++){
			out.print("<tr><td>"+i+"</td><td>"+names.get(i)+"</td><td>"+ages.get(i)+"</td></tr>");
		}
		out.print("</table>");
	%>
	
	<!-- 上面是使用Java来输出html标签 -->
	<!-- 一般情况下推荐将Java代码和html标签分离 -->
	<hr />
	<table>
		<tr><td>编号</td><td>姓名</td><td>年龄</td></tr>
		<%
		for(int i=0; i<names.size(); i++){
		%>
			<tr><td><%=i %></td><td><%=names.get(i) %></td><td><%=ages.get(i) %></td></tr>
		<%} %>
	</table>
	
	<hr />
	<%
	Map<Integer, String> cts = new HashMap<Integer, String>();
	cts.put(1,"玩具");
	cts.put(2,"文具");
	cts.put(3,"书籍");
	%>
	
	<!-- 将输出到select标签中 -->
	<%
	Set<Entry<Integer, String>> e = cts.entrySet();
	Iterator<Entry<Integer, String>> it = e.iterator();
	%>
	
	<select name="ct_id">
	<%
	while(it.hasNext()){
		Entry<Integer, String> entry = it.next();
	%>
	<option value="<%=entry.getKey() %>"><%=entry.getValue() %></option>
	<%
	}
	%>
	</select>
	
	<hr />
	<!-- 输出到radio标签中 -->
	<%
	Set<Integer> ketSet = cts.keySet();
	for(Integer key:ketSet){
	%>
	<input type="radio" name="ctl" value="<%=key %>" /><%=cts.get(key) %> &nbsp;&nbsp;
	<%
	}
	%>
</body>
</html>

效果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值