JavaWeb学习之路——jsp与serverlet(一)
Jsp與serverlet
目錄架構(gòu)圖如下所示:
1.jsp指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
page:位于jsp頂端同一個(gè)頁(yè)面可以有多個(gè)
<%@page?屬性1="屬性值"?屬性2=“屬性值" ....%>
屬性名:language,import,contentType,pageEncoding
include:將一個(gè)外部文件嵌入jsp頁(yè)面中,并解析
taglib:使用標(biāo)簽庫(kù)定義的新的自定義標(biāo)簽
?
2.jsp注釋
html:<!--?注釋-->? ?//客戶端可見(jiàn)
jsp:<%--?注釋 --%>? //客戶端不可見(jiàn)
jsp腳本注釋://單行注釋? ? ? /*? 多行注釋 ?*/
?
3.jsp腳本
示例:
<%!
int a=1,b=2;//聲明一個(gè)字符串變量
int add(int a,int c){ //聲明函數(shù)
return a+c;
%>
<P><%=a%>+<%=b%>的結(jié)果是<%=add(1,2)%></P>
腳本片段:<%? %>
聲明語(yǔ)法:<%!? ?%>
表達(dá)式語(yǔ)法:<%=%>
?
4.jsp內(nèi)置對(duì)象
web容器創(chuàng)建的一組對(duì)象,不需要new關(guān)鍵字創(chuàng)建它
九大內(nèi)置對(duì)象:
(常用)out、request、response、session、application
(不常用)Page、pageContext、exception、config
?
Web程序請(qǐng)求響應(yīng)模式
request:用戶發(fā)送請(qǐng)求
response:服務(wù)器響應(yīng)請(qǐng)求
?
out:JSPWright類的實(shí)例,向客戶端輸出內(nèi)容的常用對(duì)象
方法:void?println()? ,void clear(),void flush(),........
?
5.提交方式
get與post區(qū)別:
get:以明文的方式通過(guò)URL提交數(shù)據(jù),數(shù)據(jù)可以再URL中看到,提交數(shù)據(jù)不超過(guò)2kb,安全性低于post但效率高。
適合提交數(shù)據(jù)量不大,安全性不高的工作,如搜索,查詢等功能
post:與get相反,它將將用戶信息封裝在html?header中。適合提交數(shù)據(jù)量大且隱蔽的工作,如注冊(cè)、修改等
?
6.form表單提交至serverlet方法(IDEA)
示例:
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("username");
String password = request.getParameter("password");
response.setContentType("text/html;charset=utf-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
out.write("<script>");
out.write("alert(\"登陸成功!\")");
out.write("</script>");
System.out.println(name);
response.setHeader("refresh","1;url='/jsp/home.jsp'");
?
具體方法:
根目錄地址:http//localhost:8080
請(qǐng)求發(fā)送給jsp文件示例:
<form id=form1 name="form1" action="/home.jsp" method="post" >
(1)表單動(dòng)作及提交方式
action中字段值為src下serverlet文件的位置
<form id=form1 name="form1" action="/serverlet/index" method="post" >
(2)創(chuàng)建serverlet文件
在src新建serverler包,里面新建serverlet文件
(3)配置web.xml文件
<servlet-mapping>? ? ?
<servlet-name>likui</servlet-name>? ? ? ? ?//注冊(cè)名,與servlet-name一致,可隨意命名
<url-pattern>/serverlet/index</url-pattern>? ? ? //url路徑,為你的serverlet文件url路徑
</servlet-mapping>
<servlet>
<servlet-name>likui</servlet-name>? ? ?//serverlet注冊(cè)名,
<servlet-class>serverlet.index</servlet-class>? ?//對(duì)應(yīng)的serverlet類文件路徑
</servlet>
?
7.?request
獲取請(qǐng)求的頁(yè)面參數(shù),封裝在request中,方法如下
String getParameter(String name):返回name?指定參數(shù)值
void?setCharacterEncoding(String name):?設(shè)置字符編碼
void?setHeader(arg1,arg2):?跳轉(zhuǎn)界面
void?setAttribute(String key,String value):?設(shè)置參數(shù)值
String?getAtrribute(String key):獲取值
String getServerName():獲取服務(wù)器主機(jī)名
?
8.reponse
響應(yīng)客戶請(qǐng)求的相關(guān)信息。
String getCharacterEncoding:返回響應(yīng)的何種字符編碼
PrintWriter getWriter:返回可以向客戶端輸出字符的一個(gè)對(duì)象
void sendRedirect():重定向請(qǐng)求,對(duì)象不保存
.....
總結(jié)
以上是生活随笔為你收集整理的JavaWeb学习之路——jsp与serverlet(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring 框架之Ioc控制反转
- 下一篇: java美元兑换,(Java实现) 美元