서블릿이란
자바 클래스 형태의 웹 어플리케이션
Servlet 객체 만들기
java 위치에 Servlet 객체 생성-init,destroy 체크
-WEB-INF/lib에 servlet-api.jar 추가
프로젝트 run 주소 뒤에 URL mapping 주소 추가
Servlet 객체의 특징 :
원래 Java파일로는 Console창에만 출력이 가능했지만.
Servlet 객체는 웹브라우저에도 출력할 수 있다.
HttpServlet을 상속받았기 때문에.
@WebServlet("/Hoho") //URL mapping
// Hoho 요청하면 HaHa 서블릿이 실행된다. HaHa 객체가 생성.
public class HaHa extends HttpServlet
doGet의 역할
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet");
response.getWriter().append("Served at: ").append(request.getContextPath());
}
웹 브라우저와의 연결다리를 생성한다.
서블릿의 생명주기 (lifecycle)
Hoho 요청하면 HaHa 서블릿 클래스 객체 생성=>생성자 호출
init()
service() : doGet() or doPost
destroy() : 프로그램 수정 or 서버 종료
get 요청
a 태그 통한 요청
location.href를 통한 요청
form get을 통한 요청
주소에 직접적으로 요청을 적어서 보냄
post 요청
form post를 통한 요청
@~: 어노테이션(Annotation)
부가적인 정보를 표현하고 싶을때 사용한다.
@override
@WebServlet등
submit 을 클릭하면 login.do를 요청->
login.do 요청 처리는 LoginServlet이 처리한다.->
요청할 때 입력한 값이 request 객체에 담긴다.
요청에 해당하는 응답의
response 에는 응답 정보가 담긴다.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost");
//doGet(request, response);
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String id= request.getParameter("id");
String passwd= request.getParameter("passwd");
System.out.println(id+"/"+passwd);
PrintWriter pw=response.getWriter();
pw.println("아이디 : "+id+"<br>");
pw.println("비밀번호 : "+passwd+"<br>");
}
web.xml에서 URL Mapping 설정하기
<servlet>
<servlet-name>aa</servlet-name>
<servlet-class>myPkg.InputServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>aa</servlet-name>
<url-pattern>/sub</url-pattern>
</servlet-mapping>
<servlet-name>은 같은 이름으로만 설정해주면 된다.
forward 액션태그, response.sendRedirect 와 같이
거쳐가게 만들기
RequestDispatcher dispatcher=request.getRequestDispatcher("next.jsp");
dispatcher.forward(request, response);
next.jsp로 바로 이동한다.
forward 액션태그, response.sendRedirect의 차이점
forward 액션태그 :
request객체를 공유함
거쳐가는 페이지의 주소로 나온다.==최종페이지와 같지 않다.
response.sendRedirect :
request객체를 공유하지 않는다.
최종페이지와 주소가 같다.
RequestDispatcher
forward 액션태그와 상당히 비슷하다.
'Develop > JavaScript JQuery JSP' 카테고리의 다른 글
0810 JSP Servlet MVC구조 (0) | 2022.08.10 |
---|---|
0809 JSP Servlet (0) | 2022.08.10 |
0805 XML,EL,JSTL (0) | 2022.08.10 |
0721 게시판 만들기 (0) | 2022.07.22 |
0720 JSP JDBC로 만든 칼럼 추가 삭제 (0) | 2022.07.22 |