JavaWeb學習

---恢復內容開始---html

Reponse(須要掌握)

重定向:將這個請求,轉換到另外一個地址

//經過響應對象重定向頁面
resp.sendRedirect("404.jsp");

ServletContext

  • web容器在啓動時,他會爲每一個web應用程序都建立一個對應的ServletContext對象,他表明當前web應用。
  • 多個Servlet經過ServletContext對象實現數據共享
  • 獲取web應用的初始化參數
  • 用ServletContexthi實現請求轉發
  • 利用ServletContext對象讀取資源文件

例一,經過ServletContext對象讀取網站配置文件前端

1,新建一個database.properties文件java

driver=com.mysql.jdbc.Driver
username=root
password=123456
url=jdbc:mysql://localhost:3306/smbms

2,編寫servlet類mysql

package com.kuang.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

//讀取properties配置文件
public class ServletDemo03 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //讀取配置文件

        //1.得到配置文件的路徑
        String realPath = this.getServletContext().getRealPath("/WEB-INF/classes/resources/database.properties");
        System.out.println("取得的路徑爲:"+realPath);

        Properties properties = new Properties();
        FileInputStream is = new FileInputStream(realPath);

        properties.load(is);//把文件流加載到配置文件的對象中;

        String driver = properties.getProperty("driver");
        String username = properties.getProperty("username");
        String password = properties.getProperty("password");
        String url = properties.getProperty("url");

        //響應到網頁
        resp.getWriter().println(driver);
        resp.getWriter().println(username);
        resp.getWriter().println(password);
        resp.getWriter().println(url);

        //=======================================
        System.out.println(driver);
        System.out.println(username);
        System.out.println(password);
        System.out.println(url);
    }
}

3,配置web.xmlweb

<servlet>
    <servlet-name>Demo03</servlet-name>
    <servlet-class>com.kuang.servlet.ServletDemo03</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Demo03</servlet-name>
    <url-pattern>/q3</url-pattern>
</servlet-mapping>

4,網頁打開sql

locallhost:8080/demo02/q3數據庫

5,網頁顯示服務器

Request(須要掌握)

JSP取得項目的路徑

${pageContext.request.contextPath}app

Request對象

package com.kuang.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


public class RequestDemo01 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //查看request對象的方式
        System.out.println(request.getContextPath()); //得到web項目路徑
        System.out.println(request.getRequestURI()); //請求的URL路徑
        //Remote 遠程
        System.out.println(request.getRemoteUser()); //得到遠程的用戶名
        System.out.println(request.getRequestedSessionId()); //得到SessionId;
        System.out.println(request.getServletPath()); //請求servlet的url
        System.out.println(request.getLocalAddr()); //得到本地地址  防火牆
        System.out.println(request.getLocalName()); //得到本地名字
        System.out.println(request.getLocalPort()); //得到訪問的端口號

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

IDEA運行結果jsp

Request對象接受前端用戶提交的參數

1,寫前端註冊頁面

  • 表單的提交方式get/post
  • 表單提交的位置action:服務器的路徑/servlet對應的請求url

 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>註冊</title>
</head>
<body>

<%--
JSP的註釋
--%>

<%--
Form表單
    action:表明要提交的路徑,表單要提交到哪裏 ,能夠提交到一個Servlet
        //提交到Servlet須要,獲取到Web項目的路徑下的Servlet
    method: 提交表單的方式
--%>
<h1>註冊</h1>

<form action="${pageContext.request.contextPath}/r2" method="post">

    <p>用戶名:<input type="text" name="username"></p>
    <p>密碼:<input type="password" name="password"></p>

    <p>
        <input type="submit">
        <input type="reset">
    </p>

</form>

</body>
</html>

2,寫處理前端提交信息的Servlet

  • 接收前端傳遞的控件信息,request.getParameter(「控件的name」)

 

 1 package com.kuang.servlet;
 2 import javax.print.attribute.HashPrintRequestAttributeSet;
 3 import javax.servlet.ServletException;
 4 import javax.servlet.http.HttpServlet;
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.http.HttpServletResponse;
 7 import java.io.IOException;
 8 
 9 //處理前端提交過來的數據
10 public class RequestDemo02 extends HttpServlet {
11     @Override
12     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
13         doPost(req,resp);
14     }
15     @Override
16     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
17 
18         //經過HttpServletRequest獲取前端用戶提交的信息
19         //req.getParameterValues(); 得到前端傳遞的控件信息,經過控件的name;可是能夠接受多個參數的控件,好比(多選框....)
20         //req.getParameter(); 得到前端傳遞的控件信息,經過控件的name;
21 
22         req.setCharacterEncoding("utf-8");
23         resp.setCharacterEncoding("utf-8");
24 
25         String username = req.getParameter("username");
26         String password = req.getParameter("password");
27 
28         //鏈接數據庫,比較數據庫中的信息是否匹配
29 
30         if (username.equals("admin")&&password.equals("1234567")){
31             System.out.println("登陸成功!"); //跳轉到成功頁面
32         }else {
33             System.out.println("登陸失敗!"); //提示從新註冊
34         }
35 
36         System.out.println(username);
37         System.out.println(password);
38     }
39 }

3,配置web.xml

   配置對應的XML文件

 <servlet>
        <servlet-name>RequsetDemo02</servlet-name>
        <servlet-class>com.kuang.servlet.RequestDemo02</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>RequsetDemo02</servlet-name>
        <url-pattern>/r2</url-pattern>
    </servlet-mapping>

 

 

---恢復內容結束---

相關文章
相關標籤/搜索