在mac下,jdk下载好,解压安装后,系统就自动为你配置好环境变量了
tomcat的配置,在tomcat的官网http://tomcat.apache.org/直接下载tomcat 9压缩包 随后配置到自己喜欢的路径下
打开终端 一直cd到apache的bin目录下
随后启动tomcat 输入.startup.sh tomcat就已经启动了 在浏览器中输入localhost:8080 就可以了
关闭tomcat 在终端输入.shutdown.sh tomcat就关闭了
在eclipse中创建jsp文件
选择Dynamic Web Project 选择创建动态web网页 输入文件名JSPIstudy
随后在WebContent文件下创建子文件夹
命名为01 随后在01文件夹下创建jsp文件hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> JSP表达式输出 <%="cao" %> <%! String str = "he"; %> <%-- <% //定义的变量是局部变量 String str = "hello world"; //out是内置对象 向客户端输出各种数据 out.println(str); %> --%> </body> </html>文件形式如下 <% %> 内为jsp的内容,可以输入java的语句,这里out 是一盒内置对象,向客户端输出各种数据
在浏览器中打入localhost:8080/JSPStudy/01/hello.jsp
就可以看到hello world
jsp中的项目导出 不仅可以在eclipse中选择sever 中的tomcat来运行 也可以打包出来 放到tomcat的文件夹中运行
选中文件JSPIstudy 右键选择export 随后导出为jar包,放到tomcat目录下的webapps包下 即可在终端打开tomcat 用localhost进行访问
jsp中的注释可以用<%-- -- --%>来进行 也可以用//和 /* */来进行注释
jsp中的指令 编译指令page指令可以指定jsp文件的全局属性 可以定义page属性指定jsp的全局属性 比如使用的脚本语言的类型 导入的包等等
系统自带的会生成这些
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>自己导入的包
<%@page import="java.util.Date"%> <%@page import="java.util.ArrayList"%>随后便可以在jsp文件中使用Arrarlist类
ArrayList a = new ArrayList(); a.add(1); a.add(2);
<div> header </div>
<div> footer </div>
随后在include.jsp文件中,就可以包含这两个文件
file表示在同一个目录下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <%@include file ="header.html" %> <% //cao %> </br> <%@include file = "footer.jsp" %> </body> </html>
forword指令 可以进行重定向
有两种形式,一种带参数,一种不带参数
不带参数
直接从Index 映射到login
<jsp:forward page="login.jsp">
<title>login</title> </head>
<jsp:forward page="login.jsp"> <jsp:param value="kevin" name="userName"/> <jsp:param value="cao" name="password"/> </jsp:forward>将userName 和password进行回传
String userName = request.getParameter("userName"); String pwd = request.getParameter("password"); out.println(userName); out.println("<br/>"); out.println(pwd);进行取出输出
error_page指定错误处理页面 如果jsp文件出错 并且没有指定代码进行处理 就会自动调用这个进行错误处理
在handle_error中指定其为程序出现错误时的页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>
errorPage="handle_error.jsp"%
随后访问get_error.jsp就可以见到如下信息
jsp中的useBean
JavaBean是对类的一种封装 遵循相同的约定 可以被重用 并且遵循三个原则,公共的默认的构造函数 ,也就是无参构造函数,get set来访问 可序列化的 也就是继承Serlallzable接口
下面创建一个JavaBean
在src目录下 创建报名com.hznucai.entity 随后创建类userEntity
JavaBean的代码如下
package com.hznucai.entity; import java.io.Serializable; public class UserEntity implements Serializable { private String userName; private String password; // 生成默认的构造方法 // 生成get和set public UserEntity() { super(); } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassord(String passord) { this.password = passord; } }可以右键点击sourse来构造生成set和get方法和默认的构造函数的方法 至此 一个JavaBean的文件就创建好了
随后实现一个简单的注册功能
创建rigister.jsp文件
在其中创建一个表单 规定name为userName和password
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>录入注册信息</title> </head> <body> <form action = "do_reqister.jsp" method="post"> 用户名:<input type = "text" name = "userName"/> 密码: <input type = "password" name = "password"/> <input type = "submit" value = "提交"/> </form> </body> </html>
不用useBean属性 可以用request.getParameter来获取属性 并打印出来
String userName = request.getParameter("userName"); String passWord = request.getParameter("password"); out.println(userName); out.println("<br>"); out.println(passWord);随后输入
就可以进行注册了
用useBean的方法 useBean中海油一个scope属性 来指定对象实例存储的范围 scope属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application四个值中的一个,其默认值是page。
<!--设置javaBean属性 --> <jsp:useBean id="user" class="com.hznucai.entity.UserEntity"></jsp:useBean> <jsp:setProperty property="userName" name="user" param="userName"/> <jsp:setProperty property="password" name="user" name = "password"/>id属性表示useBean的名称 class表示实际引用的javaBean类
随后在setProperty中,property表示javaBean的属性 name表示实际引用的哪个javaBean param表示获得的表单中的参数
随后在jsp代码中 可以用getProperty方法来获得
<jsp:getProperty property="userName" name="user"/> <jsp:getProperty property="password" name="user"/>这样也可以进行打印输出
整体代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>注册信息处理</title> </head> <body> <!--设置javaBean属性 --> <jsp:useBean id="user" class="com.hznucai.entity.UserEntity"></jsp:useBean> <jsp:setProperty property="userName" name="user" param="userName"/> <jsp:setProperty property="password" name="user" name = "password"/> <% String userName = request.getParameter("userName"); String passWord = request.getParameter("password"); out.println(userName); out.println("<br>"); out.println(passWord); %> <jsp:getProperty property="userName" name="user"/> <jsp:getProperty property="password" name="user"/> </body> </html>
动态导入的include指令
<jsp:include page="header.html"></jsp:include> <jsp:include page = "body.jsp"> <jsp:param value="red" name="bgColor"/></jsp:include>