這裏使用IDEA構建Web應用html
選擇Filshsql
其自動生成的Web.XML文件以下tomcat
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> </web-app>
同時還生成了一個jsp文件,生成的jsp文件以下app
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/7/5 Time: 22:39 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body> $END$ </body> </html>
配置應用首頁jsp
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
啓動相關的應用this
jsp的基本註釋以下
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/7/5 Time: 22:39 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body> <%-- 註釋內容 --%> $END$ </body> </html>
對jsp的聲明以下
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/7/5 Time: 22:39 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body> <%! // 聲明一個整形變量 public int count; // 聲明一個方法 public String info(){ return "hello"; } %> $END$ <% // 把count值輸出後加1 out.println(count++); %> <% // 輸出info()方法後的返回值 out.println(info()); %> </body> </html>
訪問的頁面結果以下
jsp提供了一種簡單的輸出表達式
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2020/7/5 Time: 22:39 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>$Title$</title> </head> <body> <%! // 聲明一個整形變量 public int count; // 聲明一個方法 public String info(){ return "hello"; } %> $END$ `<%=count++%> <%=info()%> </body> </html>
這裏對jsp有三個編譯的指令
page指令位於jsp頁面的頂端,一個jsp頁面能夠有多個page指令,page指令的語法爲
<%@ page import="java.sql.*" %>
include指令能夠將一個外部文件嵌入到當前jsp文件中,同時解析這個頁面中的jsp語句。include命令既能夠包含jsp頁面也能夠包含靜態文本。編譯指令語法以下:
<%@ include file="要導入的jsp頁面或文本文件" %>
taglib指令用於引入一些特定的標籤庫,語法格式:
<%@ taglib prefix="tagPrefix" uri="tagLibraryURI" %>
如使用struts標籤庫:
<%@ taglib prefix="s" taglib="/struts-tags" %>
進行頁面跳轉的指令
若是轉發的時候須要傳遞參數能夠使用<jsp:param></jsp:param>指令進行設置。
好比,訪問index.jsp頁面時自動轉發至login.jsp,須要把username和password傳遞過去:
index.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <jsp:forward page="login.jsp"> <jsp:param value="yaopan" name="username" /> <jsp:param value="123456" name="password" /> </jsp:forward> <%--mac上按住comment鍵(windows下按住ctrl鍵),再點擊login.jsp forword如下的代碼不會被執行 --%>
在login.jsp中能夠使用getParameter方法獲取傳入的參數值:
<% String name=request.getParameter("username"); String pwd=request.getParameter("password"); out.println(name); out.println("<br>"); out.println(pwd); %>
執行forword指令時用戶請求的地址沒有發生變化,頁面內容被forward目標替代。
include指令用於包含某個頁面,但不會導入被include頁面的編譯指令。能夠經過param指令傳遞參數:
新建一個index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <jsp:include page="head.html"></jsp:include> <jsp:include page="body.jsp"> <jsp:param value="#1d99f6" name="bgcolor"/> </jsp:include> </html>
body.jsp
<body bgcolor="<%=request.getParameter("bgcolor")%>"> </body>