javaweb 학습(4)--servlet 관련

15549 단어 web
1. servlet의 생명 주기에 우리는 프로그램 검증을 써서 코드를 직접 올린다.
public class ServletLife extends HttpServlet{

    public ServletLife(){
        System.out.println("construction");
    }

    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("init");
    }

    @Override
    public void destroy() {
        System.out.println("destory");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet");
    }
}

다음과 같은 몇 가지 방법이 포함되어 있습니다.
construction
init 
doGet(),doPost()… 
destroy

처음 방문했을 때 호출된 순서는
construction
init 
doGet

나중에 계속 호출하면 doGet()만 호출됩니다.하나의 서버에서 같은 servlet을 만드는 것만 호출할 수 있기 때문입니다.그리고 destory는 shutdown에서 호출됩니다.
따라서 서브렛의 라이프 사이클은 다음과 같습니다.
   classLoader
       construction
    init 
  server()doGet(),doPost()…
           
   destroy

2.클라이언트에서 업로드한 값을 가져와 코드에 직접 올리려면 다음과 같이 하십시오.
public class ParmServlet extends HttpServlet{
    protected void doGet(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp) throws javax.servlet.ServletException ,java.io.IOException {
        PrintWriter writer = resp.getWriter();
        resp.setContentType("text/html");
        writer.println(req.getParameter("parm1"));
        writer.println("
"
); }; @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter writer = resp.getWriter(); resp.setContentType("text/html"); writer.println(req.getParameter("parm1")); writer.println("doPost"); writer.println("
"
); } }

html 코드는 다음과 같습니다.


<html xmlns="http://www.w3.org/1999/xhtml">
<title>title>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
head>
<body>
<div align="center" >
<form name="frm" id="frm" method="post" action="ParmServlet">
    <table>
        <tr>
            <td>

                <input name="parm1" id="parm1" type="text" >input>
            td>           
        tr>
        <tr>
            <td>
                <input name="parm2" id="parm2" type="text" >input>
            td>
        tr>
    table>
    <button type="sumbit">  button>
body>
html>

method = "post"이것은 get이면 doGet 방법을 사용합니다.사실 이 주요한 점은:req.getParameter(“parm1”);
3.클라이언트가 업로드한 여러 값 가져오기

public class GetAllParmsServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        PrintWriter writer = resp.getWriter();
        //  ,   
        Enumeration parmNames = req.getParameterNames();
        while(parmNames.hasMoreElements()){
            String parmName =  parmNames.nextElement();
            String[] parameter = req.getParameterValues(parmName);
            if(parameter.length ==1){
                writer.println(parmName + ":" + parameter[0]);
            }else{
                for(int i=0;i":" + parameter[i]);
                }
            }
            writer.println("
"
); } writer.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }

html 파일:


<html xmlns="http://www.w3.org/1999/xhtml">
<title>title>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
head>
<body>
<div align="center" >
<form name="frm" id="frm" method="get" action="GetAllParmsServlet">
    <table>
        <tr>
            <td><input name="parm0" id="parm0" type="text" >input>
            td>           
        tr>
        <tr>
            <td><input name="parm1" id="parm1" type="text" >input>
            td>           
        tr>
        <tr>
            <td>
                    2:<input name="parm1" id="parm1" type="text" >input>
            td>           
        tr>
        <tr>
            <td><input name="parm2" id="parm2" type="text" >input>
            td>
        tr>
        <tr>
            <td>
                   2:<input name="parm3" id="parm3" type="text" >input>
            td>
        tr>
    table>
    <button type="sumbit">  button>
body>
html>

여기서 포인트는 사실 Enumeration Parm Names = req입니다.getParameterNames(); 그리고 이 용기를 사용해서 조회를 진행합니다.

좋은 웹페이지 즐겨찾기