JavaWeb

JavaWeb

JSP概述

JSP(Java Server Pages)

  • 运行在服务器端的Java页面
  • 使用HTML嵌套Java代码实现
    在这里插入图片描述

使用Eclipse创建jsp web项目

在这里插入图片描述
然后在Webcontent目录下建立jsp文件
在这里插入图片描述
代码示例:

<%@ page language="java" import="java.util.Arrays" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
//<%@ page import="java.util.Arrays"%>也可以这样导包,上面那种方式若想导多种包,包之间用逗号隔开。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>第一个jsp页面 </title>
<% //在<% %>中写java代码
	int[] arr = new int[]{1,2,3,4}; 
%>
</head>
<body>
	<h1>你好!!!</h1>
	<a href="index02.jsp">第一个jsp页面</a> 
	<%
	 for(int i=0;i<arr.length;i++){
		out.println(arr[i]) ;
	 }

	%>
	<br/>
	<%=Arrays.toString(arr) %>
</body>
</html>

page指令
通过属性定义了JSP的特性,实现与JSP容器的通信
语法:
<%@ page language=“属性值” import=“属性值” contentType=“属性值”%>

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

输出:

  • out对象
    out对象是JSP的内置对象
    无需实例化即可使用
    实现数据的输出显示
  • out对象的方法
属性说明
print向页面输出显示
println向页面输出显示,在结尾处添加换行

<%out.print();%>或<%out.println(); %>实现页面输出
<%=%>实现页面输出。如: <%=title%>
使用<%%>声明局部变量、使用<%!%>声明全局变量
JSP可以添加的注释:
HTML注释:<!–HTML注释-- >
JSP注释:<%–JSP注释–%>
JSP脚本中注释:<%//单行注释%>、 <%/多行注释/%>

JSP执行过程

在这里插入图片描述

Web程序调试和排错

Web程序常见错误:

  • 404错误—找不到访问的页面或资源
    运行时,URL输入错误
    将页面放在WEB-INF下
    外部启动Tomcat,未部署项目
  • 500错误----JSP页面代码有误
    JSP页面代码有错误
  • 页面无法显示
    未启动Tomcat

jsp实现数据的传递和保存

学习目的:
  1. 掌握request和response的使用
  2. 解决页面中出现的中文乱码
  3. 掌握转发和重定向的区别
  4. 掌握session存取数据
  5. 理解cookie和application
获取表单提交的数据

请求对象:request
public String getParameter(String name)

  • 示例
    HTML代码:
    <input type=“text” name=“userName”>
    JSP代码:
    String userName=request.getParameter(“userName”);
    get与post区别
比较项getpost
参数出现在URL中
长度限制
安全性
URL可传播
request对象常用方法
方法名称说明
String getParameter(String name)根据表单组件名称获取提交数据
String[] getParameterValues(String name)获取表单组件对应多个值时的请求数据
void setCharacterEncoding(String charset)指定每个请求的编码
RequestDispatcher getRequestDispatcher(String path)返回一个RequestDispatcher对象,该对象的forward()方法用于转发请求

登录例题:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> 登录</title>
</head>
<body>
	<form action="/web02/login1.jsp" method="post">
	 名称:<input type="text" name="cu_name"/>
	 <br/>
	 密码:<input type="password" name="cu_phone"/>
	<br/>
	兴趣爱好:
	<input type="checkbox" name="happy" value="1" />足球
	<input type="checkbox" name="happy" value="2" />篮球
	<input type="checkbox" name="happy" value="3" />网球
	<input type="checkbox" name="happy" value="4" />排球
	<br/>
	<input type="submit" value="登录"/>
	</form>
</body>
</html>
<%@ page language="java" import="java.util.Arrays" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>接受登录页面传递来的数据</title>
<%
//从index.jps页面传递来的数据 我们使用request来获取
String cu_name=request.getParameter("cu_name");  //前台页面传递过来的 无论是key还是value都是String类型的
String cu_phone=request.getParameter("cu_phone");
String[] happys=request.getParameterValues("happy");//获取同名的多个参数
%>
</head>
<body>
	你提交的用户名称是:<%=cu_name %> <br />
	你提交的用户电话是:<%=cu_phone %> <br />
	你提交的兴趣爱好是:<%=Arrays.toString(happys) %>

</body>
</html>

中文乱码

JSP中默认使用的字符编码方式:(iso-8859-1不支持中文)
如何修改
点 “window”-> “Preferences” ->“JSP Files”->"Encoding"中选择utf-8。
在这里插入图片描述
◆常见的支持中文的编码方式

编码方式收录的字符
gb2312常用简体汉字
gbk简体和繁体汉字
utf-8所有国家需要的字符

解决中文乱码

设置请求和响应的编码方式
request.setCharacterEncoding(“utf-8”);
response.setCharacterEncoding(“utf-8”);
<%@ page language=“java” contentType=“text/html; charset=utf-8”%>
get请求出现乱码

  • 治标的方法:
    new String(s.getBytes(“iso-8859-1”),“utf-8”);
  • 治本的方法:
    配置tomcat\conf\server.xml文件(已经无效了)
    <Connector connectionTimeout="20000"port=“8080”
    protocol=“HTTP/1.1” redirectPort=“8443” URIEncoding=“UTF-8”/>

转发与重定向

◆转发
RequestDispatcher对象
=forward()方法
语法 1、request.getRequestDispatcher(“url”).forward(request, response)
2、<jsp:forward page=“url" />
◆重定向
将用户请求重新定位到一个新的URL
response.sendRedirect(“url”)

例:

response.sendRedirect("/web03/welcome.jsp?cu_name="+cu_name);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值