반응형
var tabSubMenu = $("#manpTabList div");
tabSubMenu.hide();
tabSubMenu.eq(0).show();

$('.tabmenu').click(function() {
  var idx = $(".tabmenu").index($(this));
  tabSubMenu.hide();
  tabSubMenu.eq(idx).show();
});
tabSubMenu.eq(0).show();		

<div id="tabMenu">
  <ul class="tab">
    <li class='tabmenu' id="default"><a href="#">탭메뉴1</a></li>
    <li class='tabmenu'><a href="#">탭메뉴2</a></li>
    <li class='tabmenu'><a href="#">탭메뉴3</a></li>
  </ul>
</div>
<div id="manpTabList">	
  <div id="tab1"></div>
  <div id="tab2"></div>
  <div id="tab3"></div>
</div>

 

반응형
반응형

/test/insertTabMain.jsp

<style>
	.tab li {
		float: left;
		display: inline-block;
		color: #000;
		text-align: center;
		text-decoration: none;
		padding: 14px 16px;
		font-size: 15px;
	}
</style>

<script type="text/javascript">
//<![CDATA[
	$(function(){
		// tab operation 
		$('.tabmenu').click(function() {
			var activeTab = $(this).attr('data-tab');
			$('.content').load(activeTab+'.do');  
		});
       		$('#default').click(); 
	});				
	
//]]>
</script>
	
<ul class="tab">
		<li data-tab="insertFormTab1Url" class='tabmenu' id="default"><a href="#">탭메뉴1</a></li>
		<li data-tab="insertFormTab2Url" class='tabmenu'><a href="#">탭메뉴2</a></li>
		<li data-tab="insertFormTab3Url" class='tabmenu'><a href="#">탭메뉴3</a></li>
</ul>
		
<div class="content"></div>

 

 

/test/insertFormTab1Url.jsp, /test/insertFormTab2Url.jsp, /test/insertFormTab3Url.jsp

<div>
	보여줄 내용
</div>

 

/test/web/TabTestController.java

@Resource(name = "tabTestService")
 private TabTestService tabTestService;
	
private String sub = "";

//메인 화면
@RequestMapping(value="/test/insertTabMain.do")
public String insertTabMain(HttpServletRequest request, HttpServletResponse response, ModelMap model, SessionStatus status) throws Exception {			
	return "test/insertTabMain";
}
	
//서브 화면
@RequestMapping(value="/test/{url}")
public String insertTabUrl(HttpServletRequest request, HttpServletResponse response, ModelMap model, SessionStatus status, @PathVariable("url") String url) throws Exception {
	sub = url.replace("insertForm", "");
	sub = sub.substring(0,sub.indexOf("Mgt"));
	return "test/"+url;
}

//서브 화면에서 저장시
@RequestMapping(value="/test/insertFormSave.do")
	public String insertFormSave(HttpServletRequest request, HttpServletResponse response, ModelMap model, SessionStatus status) throws Exception {

		DataMap param = new DataMap();

        String sub = pageUrl.replace("Form", "").replace("insert", "");
		param.put("sub", sub);
		tabTestService.insertTabUrl(param);		
		model.addAttribute("param", param);
		
        //return "redirect:/test/selectList"+sub+".do";
        return "redirect:/test/selectListTabMain.do";
		
	}

 

 

/test/service/TabTestServiceImpl.java

@Override
public void insertTabUrl(DataMap param) throws Exception {
	String sub = param.getString("sub");
	sub = "insert".concat(sub);
	commonMybatisDao.update(sub,param);
}

 

/test/TabTest_SQL.xml

<mapper namespace="test">
<update id="insertTab1" parameterType="dataMap">
  <selectKey keyProperty="seqno_seq" resultType="int" order="BEFORE">
	 SELECT NVL(MAX(SEQ), 0) +1 FROM TB_TEST
  </selectKey>
   /*  test.TB_TEST */
   MERGE INTO TB_TEST A
	USING DUAL
   ON (A.SEQ = #{seqno, jdbcType=VARCHAR})
   WHEN MATCHED THEN 
   UPDATE SET 
   A.UPDT_DT = sysdate
   WHEN NOT MATCHED THEN
	INSERT(
		SEQ,
		REGIST_DT
	) VALUES (
		 #{seqno_seq, jdbcType=VARCHAR}
		,sysdate
		)
</update>

<update id="insertTab2" parameterType="dataMap">
</update>	
<update id="insertTab3" parameterType="dataMap">
</update>

 

반응형
반응형

Apache Struts2 취약점(CVE-2017-5638) 보안업데이트

 

 ▶취약점 내용 

   jakarta 플러그인을 이용하여 파일 업로드 시 원격에서 임의의 코드를 실행할 수 있는

   취약점으로, HTTP Request헤더의 Content-Type값을 변조하여 원격 코드 실행 가능

 

 취약한 버전 

   Apache Struts 2.3.5 ~ 2.3.31 버전

   Apache Struts 2.5 ~ 2.5.10 버전

 

 ▶보안업데이트 버전 

   Apache Struts 2.3.32 또는 Apache Struts 2.5.10.1

 

웹 취약점 점검 및 조치

 

 ▷취약점이 해결 된 버전(Apache Struts 2.3.32 또는 Apache Struts 2.5.10.1)으로 업데이트 

   (권고)

 ▷Content-Type에 엄격한 필터링 적용 및 ognl 표현식과 사용 금지

 ▷commons-fileupload-x.x.x.jar 파일 삭제 (해당 파일 삭제시 업로드 기능 사용 불가)

 ▷보안 솔루션 사용

 

 

 

권고 예시) Apache Struts 2.3.15.3 에서 Apache Struts 2.3.32 업데이트 방법

 

1. 버전확인

  /web/WEB-INF/lib 에 struts-core.x.x.x.jar 파일 확인

  struts-core.x.x.x.jar 압축해제 > META-INF > MANIFEST.MF 파일에 버전 확인

 

 

2. 현재 사용하고 있는 jar파일 삭제 

 

 

 

3. 2.3.32 버전에 맞는 jar파일 추가 (첨부파일 확인)

  *apache 공식 홈페이지에 접속하여 최신 파일 다운로드 가능  http://struts.apache.org/download.cgi

 

 

 

 

4. 서버 재가동

  *오류1: /web/WEB-INF/lib/servlet-api.jar - jar not loaded ... 

   해결방안: /apache-tomcat-x.x.x/lib의 servlet-api.jar 파일과 /web/WEB-INF/lib의 servlet-api.jar 파일이 중복되어

   발생하므로, /web/WEB-INF/lib 안에 있는 servlet-api.jar 파일을 삭제

  *오류2: Unable to load configuration. - bean - jar: ... 

   해결방안: lib 폴더에 해당 jar파일이 없는 경우 또는 jar파일의 버전이 맞지 않거나,

   로드시 다른 jar파일의 문제일 수 있으므로, jar파일 확인이 필요  

 

 

 

반응형
반응형

환경변수 설정

 

 시스템 > 고급 시스템 설정 > 시스템 속성의 고급탭 > 환경변수

 1. 시스템 변수 > 새로만들기

    변수이름 : jeus_home

    변수 값   : jeus 위치

 ex)

  

2. 시스템 변수 > Path 편집

    변수이름 Path 의 변수 값 앞부분에 %JEUS_HOME%\bin; 을 추가해준다.

 ex)

 

 

 

jboot.bat

 

startDomainAdminServer  -u username -p password

 ex) startDomainAdminServer -u administrator -p 123456789

 

jdown.bat

 

stopServer -host host:port -u username -p password

 ex) stopServer -host pyo-PC:9736 -u administrator -p 123456789

(jeus base port : 9736)

 

※C:\TmaxSoft\JEUS7.0\bin 에 배치파일을 넣고

 

 jboot 혹은 jdown 명령어를 입력한다.

반응형
반응형

프로세스 강제 종료

 

1. 실행중인 프로세스를 확인한다.

 

 -Windows 작업관리자에서 확인하기

 

 

-cmd에서 확인하기

 tasklist/svc

 

 

-원하는 프로세스 찾기

 tasklist /fi "imagename eq 이미지 이름"

 

 

 

2. cmd에서 이미지 이름으로 프로세스를 강제종료한다.

 taskkill /im 이미지 이름 /f

 

 

 

 

 

포트확인후 강제종료

 

1. 강제종료할 포트 및 pid를 확인한다.

  netstat -nb -o 또는 netstat -a -o

 

 

2. cmd에서 pid로 강제종료 시킨다.

 taskkill /f /pid pid번호

 

 

 

 

반응형
반응형

1. settings.xml 만들기

 

원하는 위치에 (기본 C:\Users\사용자명\.m2) settings.xml을 생성한다.

<localRepository>repository 폴더 생성 할 경로</localRepository>

<?xml version="1.0"?>

<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/SETTINGS/1.0.0">

<localRepository>D:/Dev/eGovFrameDev-3.7.0-64bit/maven_repository_3_7/repository</localRepository>

</settings>

2. eclipse Maven 설정

eclipse-Window-Preferences-Maven-User Settings에 생성한 settings.xml 파일 경로로 변경한다.

그럼 자동으로 Local Repository 경로가 변경된다.

 

 

3.  Repository 폴더에 library 다운

프로젝트-오른쪽 마우스 클릭-Run As-Maven Install 클릭하면 repository 폴더가 생성되고 하위 디렉토리에 라이브러리가 생성된다.

 

 

 

 

 

(아래 내용 추가)

4.  프로젝트에 다운받은 library 적용

프로젝트-오른쪽 마우스 클릭-Maven - Update Project.. - offline 체크 - OK클릭하면 설치된 library 가 프로젝트에 적용된다.

반응형

'개발 > eclipse' 카테고리의 다른 글

eclipse Websquare 디자인 css 적용 안될 경우  (0) 2022.11.09
IBATIS, MYBATIS 결과  (0) 2021.01.06

+ Recent posts