Skip to content

Commit

Permalink
파라메터 주입
Browse files Browse the repository at this point in the history
  • Loading branch information
ssar committed Aug 30, 2022
1 parent 476adfb commit 1e817bd
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 2 deletions.
Binary file modified build/classes/site/metacoding/ds/DispatcherServlet.class
Binary file not shown.
Binary file modified build/classes/site/metacoding/ds/UserController.class
Binary file not shown.
27 changes: 26 additions & 1 deletion src/main/java/site/metacoding/ds/DispatcherServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import java.io.IOException;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@WebServlet("/")
public class DispatcherServlet extends HttpServlet{
Expand Down Expand Up @@ -49,10 +51,33 @@ private void doProcess(HttpServletRequest req, HttpServletResponse resp) throws
Annotation annotation =
method.getDeclaredAnnotation(RequestMapping.class);
RequestMapping requestMapping = (RequestMapping) annotation;



try {
Parameter[] params = method.getParameters();
Object[] q = new Object[params.length];

for (int i=0; i<params.length; i++) {
Class<?> cls = params[i].getType();
if(cls == HttpServletRequest.class) {
q[i] = req;
System.out.println(method.getName() +" : 리케스트 주입됨");
}

if(cls == HttpServletResponse.class) {
q[i] = resp;
System.out.println(method.getName() +" : 리스펀스 주입됨");
}

if(cls == HttpSession.class) {
q[i] = req.getSession();
}
}

//System.out.println(requestMapping.value());
if(identifier.equals(requestMapping.value())) {
method.invoke(c);
method.invoke(c, q);
}
} catch (Exception e) {
System.out.println(method.getName()+"은 어노테이션이 없습니다.");
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/site/metacoding/ds/UserController.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package site.metacoding.ds;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UserController {

@RequestMapping("/join")
public void join() {
public void join(HttpServletRequest req, HttpServletResponse resp) {
System.out.println(req.getRequestURL()+" : ");
System.out.println("join 호출됨");
}

Expand Down

0 comments on commit 1e817bd

Please sign in to comment.