:"Concurrency In Practice"에 갇혀있다. 이 책에서 비 저장 서블릿
2.1.1. 예제 : Stateless Servlet 1 장에서는 스레드를 생성하고 해당 스레드에서 구성 요소를 호출하는 여러 프레임 워크를 나열하여 구성 요소를 스레드로부터 안전하게 만드는 책임을 맡겼습니다. 스레드 안전성 요구 사항은 쓰레드를 직접 사용하는 결정이 아니라 서블릿 프레임 워크와 같은 기능을 사용하기로 결정한 경우에 발생합니다. 서블릿 기반의 간단한 인수 분해 서비스를 개발하고 천천히 확장하여 스레드 안전성을 유지하면서 기능을 추가 할 것입니다.
목록 2.1에서는 간단한 분해 servlet을 보여줍니다. 그것은 서블릿 요청에서 고려 될 수를 풀고, 그 결과를 고려하여 그 결과를 서블릿 응답으로 패키징합니다. 위에서 말했듯이
그리고 다른 아무것도@ThreadSafe
public class StatelessFactorizer implements Servlet {
public void service(ServletRequest req, ServletResponse resp) {
BigInteger i = extractFromRequest(req);
BigInteger[] factors = factor(i);
encodeIntoResponse(resp, factors);
}
}
가 제공하는 코드 예제, 나는 일이 먼저 일을하고 서블릿을 수정 동적 웹 모듈을 사용하여 이클립스 간단한 서블릿을 작성하여 작업을 얻을 시도 다음 코드로 예를 들어 보겠습니다.
package com.serialize;
import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigInteger;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Test1
*/
@WebServlet("/Test1")
public class Test1 implements Servlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Test1() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter pw = response.getWriter();
pw.print("test1");
// service(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
BigInteger i = extractFromRequest(req);
BigInteger[] factors = factor(i);
PrintWriter pw = resp.getWriter();
pw.print(factors);
// encodeIntoResponse(resp, factors);
}
private BigInteger extractFromRequest(ServletRequest req) {
// TODO Auto-generated method stub
String num = req.getParameter("factor");
return BigInteger.valueOf(Long.parseLong(num));
}
private BigInteger[] factor(BigInteger i) {
// TODO Auto-generated method stub
long number = i.longValue();
BigInteger[] ret = null ;
for(long j=2,indx=0;j<number/2;j++)
{
while(number%j == 0)
{
ret[(int) indx++]=BigInteger.valueOf(j);
number = number/j;
}
}
return ret;
}
}
어떤 도움 :하지만이 404 오류을 얻고 이번에는 어떻게 나의 새로운 servlet
있는 지금
implements servlet
대신에 내가 시도
extends HttpServlet
코드를 테스트 할 수 있습니다 매우 높이 평가 될 것입니다.
this 튜토리얼에서 하나를 유사합니다 귀하의 코드? 어떤 URL을 사용하고 있습니까? –
브라우저에서 http : // localhost : 8080/testapp/Test2와 같이 액세스하고 있습니다. – anirban