上一篇講到了如何搭建伺服器環境和運作伺服器。這一篇給大家講講jsp如何與伺服器建立連接配接。
如果你想了解伺服器環境如何配置,請參考:JSP 開發環境搭建與項目運作(一)
下面,我們來 做一個将本地某個檔案夾下的所有檔案都顯示在網頁上的需求
第一步:建立Serve
package yqb_test_webserver;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Hello extends HttpServlet {
private static final long serialVersionUID = 1L;
public Hello() {
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("UTF-8");
response.getWriter().write("歡迎你:" + request.getParameter("username"));
HttpSession session = request.getSession();
List names = Util.getFileName();
for (int i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
session.setAttribute("names", names);
String path = "file:///Users/maomao/Documents/";
session.setAttribute("path", path);
String index = "index.jsp";
response.sendRedirect(index);
}
}
上面代碼的主要目的是擷取“file:///Users/maomao/Documents/”檔案夾下面的所有檔案名
session.setAttribute("names", names);是将資料源添加到session裡面。key為“names”,,session是連接配接伺服器與jsp用戶端的橋梁。
response.sendRedirect("index.jsp");是傳回資料給到index.jsp檔案,這樣index.jsp檔案就會接收到來這裡的資料了。
第二步:配置web.xml
yqb_test_webserver
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
This is the description of my J2EE component
This is the display name of my J2EE component
Hello
yqb_test_webserver.Hello
Hello
/login
表示web伺服器起來以後預設顯示的頁面,這裡寫了很多頁面,會從上到下依次尋找對應的頁面,隻要找到一個就可以顯示了。
這裡面配置接口類名稱和接口對應key值,“/login”是Hello.java對應的用戶端調用的key值
第三步:配置jsp檔案
pageEncoding="UTF-8"%>
Insert title here
String path = (String) session.getAttribute("path");
String urlEnd = "/index.html";
List names = (List) session.getAttribute("names");
for (int i = 0; i < names.size(); i++) {
%>
}
%>
List names =(List)session.getAttribute("names");
通過這句代碼接收前面傳回的檔案名清單,後面是以清單形式展示檔案名。
這是通過頁面直接擷取資料的示例,下面的送出表單的示例:
name:
password:
value="Submit" />
action="login"
這裡的“login”是在web.xml裡面配置的接口名稱。
在Hello.java裡面通過request.getParameter("username")就可以擷取使用者輸入的使用者名了。
以上就是jsp與伺服器通信的全部内容,裡面我踩過的坑都已經提醒了大家,希望能夠幫助到你。