javaweb 학습(4)--servlet 관련
15549 단어 web
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(); 그리고 이 용기를 사용해서 조회를 진행합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Portswigger의 연구실 작성: CSRF 토큰 보호를 사용한 기본 클릭재킹이 견습생 수준 실습에서는 일부 CSRF 토큰 보호가 있음에도 불구하고 클릭재킹에 취약한 웹사이트에서 계정 삭제 흐름을 악용합니다. 주어진 자격 증명으로 로그인하면 계정 페이지로 이동한 후 사용자 계정을 삭제하는 데...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.