JSP开发技术01 (JAVA Web自学笔记02)

JSP开发技术01 (JAVA Web自学笔记02),第1张

JSP开发技术01 (JAVA Web自学笔记02) JSP基础语法

1. JSP文件的创建:
创建动态web项目
2. JSP注释

 1.html注释是和jsp注释不会显示在浏览器界面上的 , 查看源码可以看到;
<%--这是JSP注释--%>
 2. 在JSP中写JAVA代码需要将JAVA代码写入<% %>中;
	<% 
		out.println("这是一段java代码!!");
	%>

该代码不会显示在页面中,查看源码可以看到; 并且运行结果也会显示:


运行效果:

3. JSP表达式:
格式 : <%=变量|表达式 %>
求12321的平方根:12321的平方根是 : <%=Math.sqrt(12321) %>
运行结果 :

4. JSP程序段:
显示当前时间是上午还是下午:

<%
	if(Calendar.getInstance().get(Calendar.AM_PM) == Calendar.AM){
		out.println("上午号");
		}
	else{
		out.println("下午好");
		}
%>

运行截图:

5. JSP url传值:
编写一个Web文本框传入整形数字:
“url01.jsp” :将录入的数字提交给url01.jsp
该网页产生的数据会request请求

	

运行截图:

编写第二个Web页面,命名为url01.jsp,并且接收从url页面传送来的request请求数据:

	<%
		String num = request.getParameter("num");
		out.println("从第一个页面传过来的值为: "+num);
	%>

运行截图:



url.jsp—>url01.jsp?num=001
page.jsp?参数1=参数1的值&参数2=参数2的值&参数3=参数3的值&…

编写第三个Web页面, 命名为url02.jsp通过超链接将第二个页面的数值传给url02.jsp:
url01.jsp:

	<%
		String num = request.getParameter("num");
		out.println("从第一个页面传过来的值为: "+num);
	%>
	">点击链接,跳转第三个页面

url02.jsp:

	第二个页面超链接传过来的值为:<%=request.getParameter("number") %>

运行截图:





JSP指令元素

1. JSP的page指令元素:
<%@ page%>
2. JSP的include指令元素:
<%@ include%>
将另一个页面包含到当前页面 , 编译时包含(静态包含)

include01test.jsp:

	<%
	String s ="Hello";
	out.println(s);
	%>
	<%@ include file="include02.jsp" %>

include02test.jsp:

	<%
	String s ="Hello java";
	out.println(s);
	%>

运行结果会报错:

重复变量s , 相当于将01test源代码复制到02test,改名即可:
test02:

	<%
	String s1 ="Hello java";
	out.println(s1);
	%>

运行结果:

3. JSP的taglib指令元素:
<%@taglib>

JSP动作元素

1. JSP的include动作元素:
include指令元素与include动作元素
相似:都可以实现文件包含;
差异:include动作元素的包含是运行时包含(动态包含)

例如:
include01test.jsp:

	<%
	String s ="Hello";
	out.println(s);
	%>
	

include02test.jsp

	<%
	String s1 ="Hello java";
	out.println(s1);
	%>

运行结果:

2. JSP的forward动作元素:
forward元素 : 完成页面跳转
①创建Web登录页面forward01.jsp:

	会员登陆
	

②使用JAVA代码判断输入的信息是否正确(内置为tom和jerry两个用户以后可以使用数据库MySQL语句进行查询)LoginProcess.jsp:

	<% 
	//第一步:获取表单提交的数据:
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		if(username.equals("tom")&&password.equals("123")||username.equals("jerry")&&password.equals("456"))
		{
	%>
			//登录成功,跳转到成功页面
			
				
			
	<%
		}
		else{
			//登录失败,页面重新跳转到登录界面
			out.println("");
				}
	%>

③如果输入数据正确,登录成功,进入欢迎界面 ; 如果输入错误,出现错误提示界面success.jsp:

	<%=request.getParameter("user") %>,歡迎你

运行截图:

Ⅰ.登录成功:


Ⅱ.登录失败:

3. JSP的forward动作元素:
useBean: 可以通过该动作元素在jsp页面中引入JAVABean
创建一个书籍添加的Web名为addBook.jsp:

	书籍信息添加
	

在src文件夹下创建一个JAVA类文件(.class)命名为Book:

类中的数据与前面的jsp文件内容一一对应:

package com.lucene.bean;

public class Book {
	private String isbn;
	private String name;
	private String author;
	private String press;
	private double price;
}

然后生成getter/setter方法:


新建project02.jsp:

再创建一个bookProcess.jsp文件:

在HTML声明前加上:

	

id指明一个对象的标识
class指明类(要带包名:com.lucene.bean.Book)

在useBean下配合使用设置属性:

<

propety:设置的哪一个对象
name:给这个对象设置属性
给表单中所有数据都配置给book变量:

   	<

把表单对象封装到book的各个属性里面去
方法1:使用jsp:setProperty来获取JavaBean对象中的属性:

	isbn:
书名:
作者:
出版社:
价格:

运行结果:


方法2:使用JavaBean中定义的getXXX方法获取 当前对象的每个属性值:

	isbn: <%=book.getIsbn() %>
书名:<%=book.getName() %>
作者:<%=book.getAuthor() %>
出版社:<%=book.getPress() %>
价格:<%=book.getPrice() %>

运行结果:


解决程序中出现乱码的问题:
第一种解决方式:
在useBean赋值之前添加该代码:

	<%
   		request.setCharacterEncoding("UTF-8");
   	%>

运行结果 :

第二种解决方式:
调用方法后将其转化为字节数组,然后以字节数组为参数构造一个字符串 , 然后调用带两个参数的构造方法;
第一个参数为io8859-1 第二个参数为UTF - 8
(此代码仅修改Nanme书名为例:)

<%
	String name = new String(book.getName().getBytes("iso8859 - 1"),"UTF - 8")%>

运行结果:

修改前:

修改后:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5563874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存