搭建Web环境,初始JSP
URL
计算机通过统一资源定位符实现资源访问
URL:Uniform Resource Locator的缩写
唯一能识别Internet上具体的计算机、目录或文件夹位置的命名约定
Web服务器
是可以向发出请求的浏览器提供文档的程序
提供网上的信息浏览服务
常用的Web服务器
Microsoft:IIS
Apache:Tomcat
Oracle:WebLogic
IBM:WebSphere
Nginx…
Tomcat服务器
常用服务器
特点:
Apache Jakarta的开源项目
轻量级应用服务器
开源、稳定、资源占用小
默认端口号:8080
可通过eclipse手动开启关闭服务
JSP
JSP:Java Sever Pages
运行在服务器端的Java页面
使用HTML嵌套Java代码实现
<%@page %>用来设置一个JSP页面的属性
<%out.print(); %>(不换行)或<%out.println(); %>(换行)实现页面的输出
JSP可以添加的注释:
HTML注释:<!–HTML注释-- >
JSP注释:<%–JSP注释–%>
JSP脚本中注释:<%//单行注释%>、 <%/多行注释/%>
page指令:通过属性定义了JSP的特性,实现与JSP容器的通信
语法:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- jsp中Java导包方式 -->
<%@page import="java.util.Arrays,java.util.List" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>这是我的第一个jsp页面</title>
<%
int age = 18; //<% %>jsp中写Java语句方式,Java语句在HTML页面中不显示
//双斜杠表示Java中的注释,在HTML页面中也不显示
String name = "Jack";
%>
<%
int[] arr = new int[]{1,2,3,4};
%>
</head>
<body>
<h1>你好!!</h1>
<%
out.println(name + "<br />"); //ln表示输出后换行,<br / >表示在HTML页面中换行
out.print(age);
%>
<!-- Java页面中输出内容的另外一种格式 -->
<!-- 仅向页面输出内容,不需要分号 -->
<%
<%=name %>
%>
<!-- Arrays输出数组 -->
<%out.print(Arrays.toString(arr) + "<br />"); %>
<!-- 循环输出数组 -->
<%
for(int a : arr){
out.print(a);
}
%>
</body>
</html>
Web程序调试和排错
Web程序常见错误:
1.404错误—找不到访问的页面或资源
运行时,URL输入错误
将页面放在WEB-INF下
外部启动Tomcat,未部署项目
2.500错误----JSP页面代码有误
JSP页面代码有错误
3.页面无法显示
未启动Tomcat
jsp实现数据的传递和保存
1.请求对象:request
request对象常用方法
示例:
HTML代码:
< input type=“text” name=“userName” />
JSP代码:
String userName=request.getParameter(“userName”);
内置对象
JSP已经准备好的,可以直接使用的对象
请求对象:request
输出对象:out
响应对象:response
页面对象:page
中文乱码
JSP中默认使用的字符编码方式:iso-8859-1 (不支持中文)
常见的支持中文的编码方式
解决中文乱码
设置请求和响应的编码方式
request.setCharacterEncoding(“utf-8”);
response.setCharacterEncoding(“utf-8”);
<%@ page language=“java”
contentType=“text/html; charset=utf-8”%>
页面跳转判断案例:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>接收数据并判断</title>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String cu_name=request.getParameter("cu_name");
String cu_phone=request.getParameter("cu_phone");
// 假设 用户名是大华 密码是9999
// 正确 跳转至欢迎页面,如果不正确 则返回登录页面
if("刘德华".equals(cu_name) && "9999".equals(cu_phone)){
// 跳转到欢迎界面
//System.out.println(cu_name);
//response.sendRedirect("/web02/welcome.jsp?cu_name="+cu_name); //显示的将用户名传递
//.getRequestDispatcher("")将页面跳转 里面接受页面的跳转地址
//.forward(request, response) 将当前页面中的 req和resp两个对象 直接传递给下一个页面
request.getRequestDispatcher("welcome.jsp").forward(request, response);
// 注意 对于服务器的跳转 是相对路径 相对当前页面(login1.jsp)
/*
response跳转
http://localhost:8080/web02/welcome.jsp?cu_name=???
request跳转
http://localhost:8080/web02/login1.jsp?cu_name=刘德华&cu_phone=9999
response属于客户端行为 是由客户端(是浏览器行为)来发起跳转请求的
request属于服务器端的行为 是由服务器内部来进行跳转的 如果服务器跳转了页面的地址 浏览器不知道 所以浏览器的地址还停留在上一个页面的地址上
*/
}else{
// 返回登录界面
//response.sendRedirect(""); 接收1个字符串的参数 为需要跳转网页的地址
response.sendRedirect("/web02");
// 另外的方法 用的比较少 不推荐这么做
//out.print("<script type='text/javascript'>location.href='/web02'</script>");
}
%>
</head>
<body>
</body>
</html>