웹-info 의 자원 보호 정책

기업 제품 의 개발 에 있어 자원 을 보호 하기 위해 서 파일 을 WEB-INF 에 놓 을 수 있 습 니 다.그러나 이렇게 되면 자원 을 방문 하 는 데 전략 이 필요 하고 개인 적 인 정 리 는 사용 할 수 있 습 니 다.
jsp:forward 사용
페이지 에 jsp:forward 를 직접 사용 합 니 다.예 를 들 어
웹 xml 설정

<!--       -->
<servlet>
  <servlet-name>test</servlet-name>
  <jsp-file>/WEB-INF/view/thinking/test.jsp</jsp-file>
</servlet>
<servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/test.jsp</url-pattern>
</servlet-mapping>

이렇게 하면 브 라 우 저 에 다음 과 같이 입력 할 수 있 습 니 다.(주:D 는 프로젝트 이름)
http://localhost:8888/D/test.jsp
이렇게 설정 하면 하나의 파일 만 을 대상 으로 할 수 있 습 니 다.여러 파일 을 보호 해 야 한다 면 설정 파일 이 비대 해 집 니 다.
3.차단기 이용
스스로 클래스 를 만들어 서 차단기,차단기 류 를 충당 하 다

package net.cokeframework.Dispather;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Dispather extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	static String pubInit = "";
	static String selInit = "";

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		if (pubInit == "") {
			pubInit = this.getServletContext().getInitParameter("root");
		}
		if (selInit == "") {
			selInit = this.getInitParameter("child");
		}
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doGet(req, resp);
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
                 	String spath=req.getServletPath();//servlet  
		String cpath=req.getContextPath(); //Context  .
		String url=req.getRequestURI();//url  	
		String path=pubInit+selInit+url.substring((cpath+spath).length());//         
		//System.out.println("spath:\t"+spath+"
cpath:\t"+cpath+"
url:\t"+url+"
path:"+path); req.getRequestDispatcher(path).forward(req, resp); } }

이 를 통 해 알 수 있 듯 이 이 차단 기 는 특별한 것 이 없고 요청 한 자원 의 진정한 경 로 를 연결 하여 서버 의 퍼 가기 요청 을 이용 합 니 다.
물론 참고 로 sendRedirect 를 사용 할 수 없습니다.간단 한 방향 을 바 꾸 기 위해 클 라 이언 트 의 자원 으로 만 전송 할 수 있 습 니 다.sendRedirect 를 사용 할 수 없습니다.getRequestDispatcher 는 서버 의 자원 간 에 전송 할 수 있 습 니 다.그들 간 의 다른 차이 점 은 본 논문 에서 토론 하 는 범위 가 아 닙 니 다.
웹.xml 동시 설정

<!--     -->
	<context-param>
		<param-name>root</param-name>
		<param-value>/WEB-INF</param-value>
	</context-param>
	<servlet>
		<servlet-name>dis</servlet-name>
		<servlet-class>net.cokeframework.Dispather.Dispather</servlet-class>
		<init-param>
			<param-name>child</param-name>
			<param-value>/view</param-value>
		</init-param>		
	</servlet>
	<servlet-mapping>
		<servlet-name>dis</servlet-name>
		<url-pattern>/dis/*</url-pattern>
	</servlet-mapping>

이렇게 하면 view 폴 더 에 접근 할 수 있 습 니 다.예 를 들 어
http://localhost:8888/D/dis/study/test.jsp
웹-inf/view/study/test.jsp 에 접근 할 수 있 습 니 다.
이상 은 개인 적 인 견해 일 뿐 입 니 다.다른 더 훌륭 한 방법 이 있 으 면 알려 주 십시오.
별도로 공사(lomboz 를 이용 하여 제작)를 바 쳐 토론 하기 편리 하 다.

좋은 웹페이지 즐겨찾기