jsp的初步学习(一)

目录

一、如何解决JSP中的中文乱码问题

二、在JSP页面中如何使用JavaBean

三、JSP页面如何实现转发和包含


一、如何解决JSP中的中文乱码问题

       

将charset和pageEncoding都改为UTF-8编码格式即可

二、在JSP页面中如何使用JavaBean

1.首先创建一个JavaBean

package jspdemo;

public class demo {
	private String name;
	private String word;
	public demo() {
		// TODO Auto-generated constructor stub
	}
	public demo(String name,String word) {
		this.name=name;
		this.word=word;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getWord() {
		return word;
	}
	public void setWord(String word) {
		this.word = word;
	}
	
}
	

这里根据JavaBean的规范,写了一个demo类

JavaBean的规范:

        1)JavaBean必须是一个公有类,如上述代码,都是public...

        2)JavaBean中应该有一个空的构造函数。如上述代码 public demo(){}

        3)不应该有公有变量,类变量都为Private私有变量

        4)属性应该由一组读写方法来操作,getXxx()和setXxx()

2.我们有两种方法来获取这个JavaBean对象的同时给其属性赋值。

(1)通过<%@page import>指令来导入一个包下的所有类,然后再<%%>中new一个对象,并对该对象赋值。如下述代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="jspdemo.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		demo people=new demo();
		people.setName("马某人");
		people.setWord("mj666666");
	%>
	<h2>姓名:<%=people.getName() %></h2>
	<h2>密码:<%=people.getWord() %></h2>
</body>
</html>

运行下代码,得到如图所示界面

 我们成功在JSP页面使用了JavaBean的代码且对new的demo对象的属性进行了操作,并在JSP页面显示。

(2)我们还可以使用<jsp:useBean>标签来完成调用,对于<jsp:useBean>标签:

id属性:用于指定JavaBean对象的引用名称和其存储于属性名

class属性:指定权限名,也就是要给出这个JavaBean的路径

scope属性:用于指定JavaBean对象的存储域范围,其取值范围只能是page,request,session,和application域中的一个,默认为page。

对于这四个域,这里简单提一下它们的作用范围:

page域:变量只在当前页面起作用,也就是一个JSP页面可用

request域:从http请求到服务器处理结束,返回响应的整个过程。在这个过程中跳转多个JSP页面,都可以用此变量。

session域:有效范围当前会话,从浏览器打开到关闭。

application域:有效范围从服务器启动到服务器关闭都是可以在整个应用中使用的。

我们可以根据以上JavaBean构建如下代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="p" scope="page" class="jspdemo.demo"/>
	<%
		p.setName("马某人(2)");
		p.setWord("mj666666");
	%>
	<h2>姓名:<%=p.getName() %></h2>
	<h2>密码:<%=p.getWord() %></h2>
</body>
</html>

我们可以得到以下页面

也是成功调用了JavaBean的对象,并对其属性进行了set和get操作,在页面上显示了出来。

3.我们可以用<jsp:setProperty>标签来设置JavaBean对象的属性,相当于调用set方法。

<jsp:setProperty>标签中

name属性:用于指定JavaBean对象的名称,和<jsp:useBean>标签中的id详细

property属性:用于指定JavaBean对象的属性。也就是你要设置的属性的名字

value属性:用于给你property指定的JavaBean对象的属性赋值,可以是字符串,也可以是表达式,它将自动转化为和所要设置的对象的类型。

param属性:用于将一个请求参数的值赋给JavaBean对象的某个属性,类型也是自动转化,但是不能和value同时使用。

那么我们根据我们的JavaBean构建一下代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="p" scope="page" class="jspdemo.demo"/>
	<jsp:setProperty name="p" property="name" value="马某人(3)"/>
	<jsp:setProperty name="p" property="word" value="mj666666"/>
	<h2>姓名:<%=p.getName() %></h2>
	<h2>密码:<%=p.getWord() %></h2>
</body>
</html>

我们通过<jsp:setProperty>标签设置了JavaBean属性的值,简化了代码

4.通过<jsp:getProperty>标签的到JavaBean对象属性的值

这个标签和<jsp:setProperty>标签就大同小异了,不多做叙述,但还是放一下代码和运行截图吧

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="p" scope="page" class="jspdemo.demo"/>
	<jsp:setProperty name="p" property="name" value="马某人(4)"/>
	<jsp:setProperty name="p" property="word" value="mj666666"/>
	<h2>姓名:<jsp:getProperty name="p" property="name"/></h2>
	<h2>密码:<jsp:getProperty name="p" property="word"/></h2>
</body>
</html>

JSP中JavaBean的使用大概就归纳这么多,希望大家有所收获。

三、JSP页面如何实现转发和包含

1.转发

在JSP页面中实现转发功能,从一个页面跳转到另一个页面,这里总结四种方法

(1)第一种是使用href超链接的方法来进行页面跳转。

如下述代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>这是href超链接跳转页面的测试</h1>
	<h1><a href="getBean.jsp">点击跳转到getBean的页面</a></h1>
</body>
</html>

如上述代码运行结果所示,我们在jsp中通过超链接定位了getBean.jsp的位置,通过<a href=""></a>标签来实现了页面的跳转。

(2)第二种是使用提交表单的方式来进行跳转

这里就用一个简单的用户登录来测试一下,代码如下:

 login页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>这是form表单跳转JSP页面的测试</h1>
	<p>下面是你需要输入的账号密码</p>
	<p>账号请输入majie</p>
	<p>密码请输入mj666666</p>
	<form method="post" action="login_result.jsp">
		<p>用户名:<input type="text" name="username" value=""/></p>
		<p>密码:<input type="password" name="word" value=""/></p>
		<p>提交<input type="submit" name="login" value=""/></p>
	</form>
</body>
</html>

login_result页面代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String name=request.getParameter("username");
		String word=request.getParameter("word");
		if(name.equals("majie")&&word.equals("mj666666")){
	%>
		<p>欢迎您,至高无上的管理员majie</p>
	<% 
		}else{
	%>
		<p>账号或者密码错误,请重新登录</p>
		<p><a href="login.jsp">点击此处重新返回登录</a></p>
	<% 
		}
	%>
</body>
</html>

运行截图:

登录成功界面

账号或密码错误界面

 

 (3)第三种就是使用response对象重定向

通过response来进行重定向其实和在servlet中使用相差不大,代码如下

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%System.out.println("页面通过Response重定向开始"); %>
	<%response.sendRedirect("login.jsp");%>
	<%System.out.println("页面通过Response重定向结束,成功到达login.jsp页面"); %>
</body>
</html>

通过插旗,我们可以确定,login.jsp页面是通过response重定向转发过去的。

(4)第四种就是JSP自带的<jsp:forward>转发标签

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%System.out.println("forward转发页面开始"); %>
	<jsp:forward page="login.jsp"/>
	<%System.out.println("forward转发页面结束"); %>
</body>
</html>

 

不同于response重定向,使用<jsp:forward>标签进行页面跳转,跳转完成后,不会再回到之前的页面,而通过response重定向则还要返回,因为我们给了请求,那么响应必然还要返回。

2.包含

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>这是一个jsp的包含页面测试</h1>
	<p>下面是包含进来的登录页面</p>
	<%@include file="login.jsp" %>
</body>
</html>

关于jsp页面的包含,就是在需要的位置加一个<%@include file="jsp路径"%>即可 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值