Java Web初步

1.JSP概述
(1)JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP是当今Web开发中最重要的部分之一。
(2)JSP技术是在传统的网页HTML(标准通用标记语言的子集)文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp),就构成了JSP网页。Web服务器在遇到访问.JSP网页的请求时,首先执行其中的Java程序代码,然后将执行结果以HTML形式返回给客户端。Java代码的解析在服务器端(也成为后端),客户端(也成为前端)只用于显示。

2.JSP运行环境
在着手开发动态Web之前,我们首先需要有一个Web容器—Tomcat。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
(1)安装Tomcat
在Apache官网下载Tomcat服务器。( http://tomcat.apache.org/ 注意:最新版本tomcat都是zip版的,也就是说下载之后直接就解压就好了)。然后配置环境变量:在系统环境变量里面新建CATALINA_HOME和CATALINA_BASE,变量值均为tomcat解压路径。
进入解压路径下的bin目录找到startup.bat,双击,然后打开一个浏览器,地址栏输入localhost:8080,若出现Tomcat的主页则说明Tomcat成功安装。
(2)配置虚拟目录
(1)打开Tomcat解压路径“conf/server.xml”,加入下面一行:
在这里插入图片描述
两个参数的含义为:
path:表示浏览器中的访问路径,本例中的path设置为“/webdemo”,则通过浏览器地址栏输入的访问地址就是localhost:8080/webdemo,实则访问docBase目录下的文件。
docBase:表示了文件的真实的文件目录所在位置。
(2)打开Tomcat解压路径“conf/web.xml”,修改false为true。
在这里插入图片描述
修改上述配置文件后,需要重启Tomcat,先运行shutdown.bat,再运行startup.bat,再在浏览器中打开localhost:8080/webdemo,出现如下界面,说明虚拟目录配置成功。
在这里插入图片描述
(3)编写第一个JSP程序:Hello World!
在虚拟目录 C:\Users\15041\Desktop\eclipse-workspace\WebDemo 所在的路径下建立一个名为hello.jsp的文件,代码如下:其中Java程序要编写在"<%…%>"之间。

<%@ page contentType="text/html; charset=UTF-8"%>
<html>
<head>
		<title>JSP</title>
		<meta charset="UTF-8">
</head>
<body>
		<%
				out.println("<h1>Hello World!</h1>");
		%>
<body>
</html>

在浏览器中输入localhost:8080/webdemo/hello.jsp,显示如下。
在这里插入图片描述
3.JSP基础语法
(1)显示注释与隐式注释
显示注释:HTML风格的注释,格式为:<!—注释内容—>(中间为两个横隔线)
隐式注释:有Java风格的注释和JSP自己的注释两种,格式为:<%//注释内容%>和<%/* */%>

(2)代码段
Scriptlet(代码段)就是用来标记Java代码的标志,服务器在解析JSP文件时会识别Scriptlet,并在Java代码段生成一个Java文件,JSP文件中有三种常用的Scriptlet标记。

  • <%%>:定义局部变量和Java程序语句
  • <%=%>:可以简单地理解为表达式输出,相当于替代了out.println()。
  • <%!%>:定义全局变量,可以编写类、方法
    参考以下案例:
<%@ page contentType="text/html; charset=UTF-8"%>
<html>
    <head>
	<title>Scriptlet应用</title>
	<meta charset="UTF-8">
    </head>
    <body>
	<%!          //全局变量
	public static final String MSG = "Hello World!";
	%>
	<%
	int num = 0;    //局部变量
	for(int i=0;i<10;i++)
	{num += i;}
	%>
	<h3><%=MSG%></h3>
	<h2>0+1+2+3+...+9的和为:<%=num%></h2>
    </body>
</html>

???中文乱码
在这里插入图片描述
(3)Page指令

  • pageEncoding:通常将文件编码格式设为“UTF-8”,就能来解决中文乱码问题,使用格式为:<%@page pageEncoding=“UTF-8”%>
  • contentType
  • import:有时生成的Java程序在实现,某一功能时需要导入相关的包,这是会用到import来导入包,如import java.util*
  • language:设置解释该JSP时采用的语言,默认开发语言是Java。
  • session

(4)包含指令
在一个项目中可能有多个页面都有相同的头部信息、工具栏和尾部信息,将这些头部信息、尾部信息和工具栏都定义到一个独立的文件之中,在修改的时候只需修改这些文件就可以,这样更利于代码的维护。导入的操作有两种:静态导入和动态导入。静态导入不需传递参数,而动态导入则需要传递参数。以下面一个例子进行说明:testinclude.jsp、include_no_param.jsp、includeparam.jsp这三个文件均在同一个文件夹webdemo中。

包含指令的演示(testinclude.jsp)

<%@ page pageEncoding="UTF-8" contentType="text/html"%>  //包含指令的演示
<html>
    <head>
	<title>the usage of include JSP</title>
	<meta charset="UTF-8">
    </head>
    <body>
	<%
			String msg = "WORLD";
	%>
	<jsp:include page="include_no_param.jsp"/>       //静态导入页面include_no_param.jsp
	<hr>
	<jsp:include page="include_param.jsp">
		<jsp:param name="var1" value="HELLO"/>
		<jsp:param name="var2" value="<%=msg%>"/>
	</jsp:include>     //这四行为动态导入页面include_param.jsp
    </body>
</html>

在不传递参数时被包含的页面(include_no_param.jsp)

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<html>
    <head>
	<title>JSP</title>
	<meta charset="UTF-8">
    </head>
    <body>
			<h3>not Including Parameter</h3>
    </body>
</html>

在传递参数时被包含的页面(include_param.jsp)

<%@ page pageEncoding="UTF-8" contentType="text/html"%>
<html>
    <head>
	<title>JSP</title>
	<meta charset="UTF-8">
    </head>
    <body>
			<h3>including parameter</h3>
			first received parameter :<%=request.getParameter("var1")%><br>
			second received parameter :<%=request.getParameter("var2")%>
    </body>
</html>

在这里插入图片描述
(5)跳转指令
JSP中可以由一个页面自动跳转到另外一个页面。
mainForward.jsp

<%@ page pageEncoding="UTF-8" contentType="text/html"%>
<html>
    <head>
	<title>The instruction of forward</title>
	<meta charset="UTF-8">
    </head>
    <body>
			<jsp:forward page="forward_para.jsp">
				<jsp:param name="vara" value="HELLO"/>
				<jsp:param name="varb" value="WORLD"/>
			</jsp:forward>
    </body>
</html>

forward_para.jsp

<%@ page pageEncoding="UTF-8" contentType="text/html"%>
<html>
    <head>
	<title>The instruction of forward</title>
	<meta charset="UTF-8">
    </head>
    <body>
			<h1>this is the page that come forward.</h1>
			<h1>parameter_1:<%=request.getParameter("vara")%></h1>
			<h1>parameter_2:<%=request.getParameter("varb")%></h1>
    </body>
</html>

Alt
4.内置对象
不需要预先声明就可以在脚本代码和表达式中随意使用的对象,这些内置对象起到简化页面的作用,不需要开发人员进行实例化,由容器实现和管理。
request.getParameter("")中request就是一个内置对象,而getParameter()是一个方法。
在JSP之中一共有9个内置对象。
在这里插入图片描述
(1)request对象
服务器端只能通过request对象接受客户端发送的所有内容。如可以使用request对象来获取用户提交的表单信息,然后对其处理。

定义表单页面(input.html)

<%@ page contentType="text/html;charset="UTF-8""%>
<html>
    <head>
	<title>Request使用范例</title>
	<meta charset="UTF-8">
    </head>
    <body>
	<%
			<form action="input_do.jsp" method="post">
                <!--id是给Javascript用的,name是给JSP使用的-->
               Please input a message:<inout type="text" name="msg" id="msg">   //定义了一个输入框
                <input type="submit" value="submit">
            </form>
	%>
    </body>
</html>

定义input_so.jsp页面

<%@ page contentType="text/html;charset="UTF-8""%>
<html>
    <head>
	<title>JSP</title>
	<meta charset="UTF-8">
    </head>
    <body>
	<%
			request.setCharacterEncoding("UTF-8");
			String msg=request.getParameter("msg");
			out.println("<h1>输入内容为:"+msg+"</h1>");
	%>
    </body>
</html>

html文件不运行开头的代码??
在这里插入图片描述
表单中的信息提交之后会交给input_do.jsp来处理,跳转到如下页面:
在这里插入图片描述
(2)response对象
response对象和request对象的功能正好相反。response主要是服务器端对客户端的回应,在JSP页面中所有内容输出都表示的是回应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值