本文目錄一覽:
jsp是什麼
JSP是一種動態網頁技術標準,這種技術可以根據客戶端的請求,生成動態或者靜態網頁,然後發送給客戶端的請求者。
不少的朋友經常會在電腦科普網站上看到jsp這個概念,究竟這個jsp是什麼意思?jsp又有什麼作用和特點呢?下面讓我們一起去了解吧。
詳細內容
01
JSP部署於網路伺服器上,可以響應客戶端發送的請求,並根據請求內容動態地生成HTML、XML或其他格式文檔的Web網頁,然後返回給請求者。JSP技術以Java語言作為腳本語言,為用戶的HTTP請求提供服務,並能與伺服器上的其它Java程序共同處理複雜的業務需求。
02
JSP將Java代碼和特定變動內容嵌入到靜態的頁面中,實現以靜態頁面為模板,動態生成其中的部分內容。JSP引入了被稱為「JSP動作」的XML標籤,用來調用內建功能。另外,可以創建JSP標籤庫,然後像使用標準HTML或XML標籤一樣使用它們。
03
標籤庫能增強功能和伺服器性能,而且不受跨平台問題的限制。JSP文件在運行時會被其編譯器轉換成更原始的Servlet代碼。JSP編譯器可以把JSP文件編譯成用Java代碼寫的Servlet,然後再由Java編譯器來編譯成能快速執行的二進位機器碼,也可以直接編譯成二進位碼。
04
用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面,並使用JSP標識或者小腳本來生成頁面上的動態內容。生成內容的邏輯被封裝在標識和JavaBeans組件中,並且捆綁在腳本中,所有的腳本在伺服器端運行。由於核心邏輯被封裝在標識和JavaBeans中,所以Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的生成。
05
在伺服器端,JSP引擎解釋JSP標識和腳本,生成所請求的內容(例如,通過訪問JavaBeans組件,使用JDBC技術訪問資料庫或者包含文件),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這既有助於作者保護自己的代碼,又能保證任何基於HTML的Web瀏覽器的完全可用性。
解釋JSP代碼,越詳細越好
%
Condb con=new Condb(); //建立資料庫連接
int num=0; 定義計數變數 初始化為0
String sql=”select * from tb_Result where Result='”+1+”‘”; 資料庫查詢命令
ResultSet rs=con.executeQuery(sql); 執行資料庫查詢命令
while(rs.next()){ 判斷是否是否是記錄集最後一條同時移動資料庫記錄至下一條
num++; 計數變數自加1
%
tr
td width=”37″ height=”22″ align=”center”%=num%/td
td height=”22″ align=”left”a href=”Rparticular.jsp?temp=%=rs.getString(2)%” 得到資料庫第三個欄位的值作為temp參數的值
%String str=rs.getString(2);out.println(str);% 輸出資料庫第三個欄位的值
/a/td
td height=”22″ align=”center”%=rs.getDate(8)%/td
td height=”22″ align=”center”%=rs.getString(9)%/td
/tr
%
}
con.close(); 關閉資料庫連接
%
求大神寫一下jsp的簡單的註冊界面代碼。
1.需要一個jsp頁面:
//login.jsp核心代碼:
form action=”${pageContext.request.contextPath}/servlet/UserServlet” method=”post”
input type=”text” name=”loginname” /input type=”password” name=”password”/
input type=”submit” value=”登錄”/
/form
2.需要一個servlet來驗證登錄信息
//UserServlet 核心代碼
class UserServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
private void process(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw = response.getWriter();
request.setCharacterEncoding(“UTF-8”);
response.setContentType(“text/html”);
String loginname = request.getParameter(“loginname”);
String password = request.getParameter(“password”);
//創建一個service來處理業務邏輯(包括查詢資料庫操作)
UserService service = new UserService();
boolean bool = service.validateUser(loginname,password);
if(!bool){
pw.println(“用戶名或密碼錯誤”);
}else{
pw.println(“登錄成功”);
}
}
3.需要一個service處理業務邏輯(包括查詢資料庫操作)
//UserService 核心代碼
public class UserService{
/**
*查詢資料庫驗證用戶是否存在,返回boolean
*/
public boolean validateUser(String loginname,String password){
boolean bool = false;
Connection conn = null;
PreparedStatement ps = null;
//這裡以mysql為例
try {
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”, “root”, “”);
String sql = “select login_name,pass_word from t_user where login_name=? and pass_word=?”;
ps = conn.prepareStatement(sql);
ps.setString(0, loginname);
ps.setString(1, password);
ResultSet rs = ps.executeQuery();
if(rs.next()){
bool = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(conn != null){
conn.close();
conn = null;
}
if(ps != null){
ps.close();
ps = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return bool;
}
}
jsp程序代碼
%@ page language=”java” import=”java.util.*” errorPage=”error.jsp” pageEncoding=”UTF-8″%
% request.setCharacterEncoding(“GBK”);%
html
head
title動作處理頁面/title
/head
body background=”C:\tp\yy.JPG”
font color=yellow
centerbrh2
jsp:useBean id=”loginbean” class=”com.login.LoginBean”/jsp:useBean //使用jsp:useBean標籤調用LoginBean.java,class指明JavaBean位置
jsp:setProperty name=”loginbean” property=”*” ///設置LoginBean的屬性值
%out.println(“用戶號為:”+loginbean.getUserid()+”brbr”); 輸出loginbean裡面getUserid的值
if (loginbean.getUserid()==null){ //如果用戶名為空
throw new Exception(“尊敬的用戶:系統登錄頁面中的用戶名不能為空,請輸入用戶號!”);
}
if (loginbean.getPsw()==null){ //如果密碼為空
throw new Exception(“尊敬的用戶:系統登錄頁面中的密碼不能為空,請輸入密碼!”);
}
if (loginbean.getPsw().equalsIgnoreCase(“neusoft”)) //如果JavaBean的密碼和輸入密碼相同
{
String puserid = request.getParameter(“userid”); //獲得此用戶ID
Cookie cookies[] = request.getCookies();
//如果是上一步提交過來的,則更新Cookie的值
if(puserid != null) {
Cookie c = new Cookie(“userid”, puserid);
c.setMaxAge(60*60*24*30); //Cookie的有效期為1個月setMaxAge()是Cookie 的一個方法
器單位為秒
60*60*24*30等與30天*24小時*60分*60秒==結果就為1個月的秒數
response.addCookie(c);
}
session.setAttribute(“login”,”ok”);
session.setMaxInactiveInterval(-1);
%
jsp:forward page=”success.jsp” / //跳轉至success.jsp
%
}
else { //如果密碼不正確則執行
out.println(“對不起,密碼輸入錯誤!您此次系統登陸失敗!請重新輸入密碼!brbr”);
out.println(“A href=login.jsp返回/Abr”);
}
%
h2
br
hr
/font
/body
/html
答題完畢
原創文章,作者:HXMVA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/329319.html