A、JSPは理解して
JSP(Javaサーバーページ、サーバーページが)、それはHTML +ジャワ= = JSP理解され、それがダイナミックHTMLを生成することができます(タグを綴ります)。サフィックスが.jspファイルであり、
コンテンツは、本体とラベルされたJavaコード、サーブレットの自然をインライン化することができます。
二、JSPファイルの作成
最初のステップ: Webプロジェクトを作成し、参照ステップ:https://www.cnblogs.com/qinqin-me/p/12256095.html
ステップ2:ファイルフォルダWEBROOTプロジェクトで終わる.jspファイルを作成します。
第三段階:デフォルトのファイルは、符号化されたJSPである:ISO-8859-1、必要に応じて改変8 UTF、以下のステップ:
[ウィンドウ]をクリックします> jsp->検索する検索ボックスにPreference->をクリックしてJSPをクリック- >上向き選択UTF-8の右にあるドロップダウンボックスのエンコーディング
三、JSPエンジン
おそらく知っています
JSPエンジンと同じものを参照するJSPコンテナは、彼らはすべての最も一般的に使用されるTomcatのある一般的なJSPエンジンのTomcat、JRunは、そこにある、Webアプリケーションを統合管理するためのソフトウェアを参照してできるように。
コンピュータJSPエンジンのインストールは、実際には、Webサーバーです。JSPファイルにアクセスするためのブラウザは、JSPエンジンを通過しますJSPファイルがサーブレットに変換された場合、クラスにコンパイルされ、その後、クラス
オブジェクトのユーザーに応答して発生します。
JSPの実行プロセス
まず、その後、その後、クラスファイルのjavaファイルにコンパイルされたJavaファイルを生成し、クラスごとにオブジェクトを作成し、JSPエンジンを要求し、ユーザーに応じて、
四、JSPページの一部
1.静的コンテンツ
2.命令
JSPは、JSPページは、スペースで区切られた、キーと値のペアの形式で表現、関連する命令は、複数の属性を有することができる属性全体の命令を設定するために使用され
1)pageディレクティブのページに関連付けられている:ページ属性に関する設定
<%@ページの項目1 = "属性値1" 項目2 = "属性値2" 属性3 = "属性値3" ...%>
2)文書に関連付けられた命令が導入含まれます: JSPページの文を解析中にHTMLファイルにJSPまたはその他の外部ファイルを埋め込みます
<%@ includeファイル= "hh.html" %>
3)タグのtaglibディレクティブに関連付けられている:新しいカスタムラベルを定義するためのラベルの使用を
<%@ taglibのURL = "tablibburl" プレフィックス= "tagpre" %>
例えば、JSTLタグライブラリを使用するためにここにあなたが見ることができます:https://www.cnblogs.com/qinqin-me/p/12339977.html
3.式
提供JSPは、Javaのページへの出力変数のための特別な構文は__jspService方法に存在しています
サーブレットで生成されたコードです。
out.print(変数名);
JSPファイルでは、次のコマンドを使用します。
<%=変数名方法は、値または%を返します>
4.小さなスクリプト
エンジンを解析した後に、JavaのJSPファイルに記述されたコードは、また__jspService方法に登場します
JSPファイルでは、次のコマンドを使用します。
<%
<%が - 任意のJavaコードを書く(Javaはステートメントを準備し、変数を定義することができる、方法を定義することができない) - %>
公演();
System.out.println("这就是小脚本的作用");
%>
5.声明
其实就是Java程序中的成员声明,可以用来声明成员变量、成员方法。此处的声明都是出现在类体中的而不是出现在方法体中的
在JSP文件中使用如下:
<%!
private Integer num = 10;
public void show(){
System.out.println(num);
}
%>
6.注释
JSP注释分三种:
HTML注释:(客户端可见)
<!--html注释-->
JSP注释:(客户端不可见)
<%--JSP注释--%>
JSP脚本注释:
//单行注释
/*多行注释*/
五、案例
1.JSP代码
1 <body> 2 <% 3 List<order> list = DealWithorder.findAll(); 4 %> 5 <input type = "text"> 6 <input type = "button" value = "搜索"> 7 <table> 8 <tr> 9 <th>订单表 10 <input type = "button" value = "全删"> 11 <input type = "button" value = "添加"> 12 </th> 13 </tr> 14 <tr> 15 <td>下单时间</td> 16 <td>姓名</td> 17 <td>详细地址</td> 18 <td>预留电话</td> 19 <td>车牌号码</td> 20 <td>故障描述</td> 21 <td>预约时间</td> 22 23 </tr> 24 <% 25 for(order o : list){ 26 System.out.println(o); 27 %> 28 <tr> 29 <td><%= o.getTime() %></td> 30 <td><%= o.getName() %></td> 31 <td><%= o.getAddress() %></td> 32 <td><%= o.getPhonenum() %></td> 33 <td><%= o.getCarnum() %></td> 34 <td><%= o.getProblem() %></td> 35 <td><%= o.getDatetime() %></td> 36 <td> 37 <input type = "button" value = "删除"> 38 <input type = "button" value = "修改"> 39 </td> 40 </tr> 41 <% 42 } 43 %> 44 <tr> 45 <td colspan = "8"> 46 当前 页/共 页 首页 上一页 1 2 3 ... 下一页 尾页 47 </td> 48 </tr> 49 </table> 50 </body>
2.页面效果
六、JSP九大内置对象
大概了解
内置对象(又称隐含对象),在JSP中不需要创建(由服务器/容器创建),可以直接使用的对象
内置对象
out:
out对象是JSPWriter类的实现,是向客户端输出内容常用的对象
类型:JSPWriter
作用:向客户端进行响应字符打印流
request(四大作用域对象之一,important):
类型:HttpServletRequest
作用:请求对象,包含了请求信息
getParameter("key");获取用户提交的表单信息
setCharcterEncoding("字符集");设置请求编码格式,防止乱码
setAtrribute("key","value");将数据保存到Request范围内的变量
forward(String url);转发
getParametersValues(String name);返回包含参数name所有值的数组
response(important):
类型:HttpServletResponse
作用:响应对象,用来给用户进行响应
addCookie();将一个Cookie对象发送到客户端
sendRedirect(String url);重定向
session(四大作用域对象之一,important):
类型:HttpSession
作用:会话对象,用来进行数据的共享和会话的跟踪
setMaxInactiveInterval(int num);设置session对象的有效活动时间
invalidate();销毁当前的session
application(四大作用域对象之一,important):
类型:ServletContext
作用:全局的Servlet上下文对象,每个应用只有一个,从应用启动,就创建了,直到应用消亡,对象才被释放。
config:
类型:ServletConfig
作用:Servlet配置对象,较少使用
page:
类型:Object
作用:指的当前JSP页面对象
pageContext(四大作用域对象之一,important):
类型:pageContext
作用:页面的上下文,用来在一个页面中进行数据的共享与通信
exception:
类型:Throwable
作用:常用于错误处理的页面,用来收集其他页面产生的错误信息,只有isErrorpage="true"时,才会产生这个对象
七、JSP四大作用域
大概了解
为了页面、请求和用户之间传递和共享数据,JSP提供了四个不同的作用域:pageContext(页面作用域)、request(请求作用域)、
session(会话作用域)、application(应用程序作用域),这些作用域规定了数据可以传递和共享的范围以及数据的存活时间。
四大作用域(由上向下,作用域范围由小到大)
pageContext:一个页面
request:一个请求(可能包含多个页面)
session:一次会话(可能包含多次请求,默认数据存储时间30分钟)
application:一次服务(包含多次会话)
常用方法:
setAtrribute("key","value");将数据保存在对应作用域范围内的变量
Object val = getAtrribute("key");将数据从对应作用域范围内取出来
removeAtrribute("key");将指定数据从对应作用域范围内的删除
1.添加数据到对应的作用域
2.将数据从对应的作用域取出来
3.方式二取值结果(从作用域小的先取值)
4.将数据转发到页面
5.将数据重定向到页面
6.请求转发和请求重定向的区别
请求重定向:客户端行为,response.sendRedirection("redirect.jsp");从本质上等于两次请求,前一次的请求对象不会保存,地址栏的url地址会改变
请求转发:服务器行为,request.getRequestDispatcher("forward.jsp").forward(request,response);是一次请求,转发后请求对象会保存,地址栏和url地址不会改变
八、EL表达式
用于快速从域对象中取出信息,并输出至网页
格式:
取出基本数据类型的格式:${key}
取出对象的属性的格式:
${对象的key.属性名}
取出数组/集合中对象的属性值:
方式1:${数组的key[下标].属性名称}
方式2:${数组的key[下标]["属性名"]}
方式3:${数组的key[下标][属性名的key]}
EL表达式获取数据流程:
采用就近原则,按照四大作用域由小到大的顺序依次取数据。
九、JSP的六大动作
include动作
用于引入jsp文件,在转换时期,是没有引入的,只有当执行到include代码的时候才会被动态的编译载入
<jsp:include page = "引用文件的地址" flush = "false"></jsp:include>
include动作与include指令区别:
include指令是JSP程序的转换时期,将引入的文件嵌入,然后容易进行编译
userbean、setProperty、getProperty动作
用于给实体对象赋值
<jsp:userbean id = "别名" class = "全限定名" scope = "作用范围" />
<jsp:setProperty property = "属性名称" name = "别名" value = "值"/>
<jsp:getProperty property = "属性名称" name = "别名" />
forward动作、param动作
<jsp:forward page = "转发目标文件的地址">
<jsp:param value = "值" name = "别名"/>
<jsp:param value = "值" name = "别名"/>
</jsp:forward>