1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexTest1{ private Pattern pattern; private Matcher matcher; public RegexTest1(String pattern){ this .pattern = Pattern.compile(pattern); } public boolean validate(String text){ matcher = pattern.matcher(text); return matcher.matches(); } public static void main(String [] args){ String passwordPattern = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})" ; String emailPattern = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$" ; String ipaddressPattern = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$" ; RegexTest1 password = new RegexTest1(passwordPattern); RegexTest1 email = new RegexTest1(emailPattern); RegexTest1 ipaddress = new RegexTest1(ipaddressPattern); String text1 = "aaSS12!@" ; String text2 = "ASsdv221@nate.com" ; String text3 = "127.1.1.1" ; System.out.println(password.validate(text1) + "\t" + text1); System.out.println(email.validate(text2) + "\t" + text2); System.out.println(ipaddress.validate(text3) + "\t" + text3); text1 = "aaS!@" ; text2 = "ASsdv221@natecom" ; text3 = "0127.1.1.1" ; System.out.println(password.validate(text1) + "\t" + text1); System.out.println(email.validate(text2) + "\t" + text2); System.out.println(ipaddress.validate(text3) + "\t" + text3); } } |
언노운 잡동사니
Post List
2019년 1월 24일 목요일
자바 정규식(비밀번호, 이메일, 아이피주소)
자바 geotools 15.1 좌표간 거리계산
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | import org.geotools.geometry.jts.JTS; import org.geotools.referencing.CRS; import org.geotools.referencing.GeodeticCalculator; import org.opengis.referencing.crs.CoordinateReferenceSystem; import com.vividsolutions.jts.geom.Coordinate; public class GeoDistanceTest { private CoordinateReferenceSystem sourceCRS; private String sourceX; private String sourceY; public GeoDistanceTest(String sourceCRS, String sourceX, String sourceY) throws Exception { this .sourceCRS = CRS.decode(sourceCRS); this .sourceX = sourceX; this .sourceY = sourceY; } public void distanceCalculator(String x, String y) throws Exception { GeodeticCalculator gc = new GeodeticCalculator(sourceCRS); gc.setStartingPosition(JTS.toDirectPosition( new Coordinate(Double.parseDouble(sourceX), Double.parseDouble(sourceY)),sourceCRS)); gc.setDestinationPosition(JTS.toDirectPosition( new Coordinate(Double.parseDouble(x), Double.parseDouble(y)),sourceCRS)); double distance = gc.getOrthodromicDistance(); System.out.println( "distance (m) : " + distance); } public static void main(String[] args) throws Exception { GeoDistanceTest g = new GeoDistanceTest( "EPSG:4326" , "37.5639686" , "126.9794393" ); g.distanceCalculator( "37.5639686" , "126.9794393" ); } } |
자바 geotools 15.1 좌표 변환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | import org.geotools.geometry.jts.JTS; import org.geotools.geometry.jts.JTSFactoryFinder; import org.geotools.referencing.CRS; import org.opengis.referencing.crs.CoordinateReferenceSystem; import org.opengis.referencing.operation.MathTransform; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Point; public class GeoTransTest { private CoordinateReferenceSystem sourceCRS; private CoordinateReferenceSystem targetCRS; public GeoTransTest(String sourceCRS, String targetCRS) throws Exception { this .sourceCRS = CRS.decode(sourceCRS); this .targetCRS = CRS.decode(targetCRS); } public void transform(String x, String y) throws Exception { GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); Coordinate coord = new Coordinate(Double.parseDouble(x), Double.parseDouble(y)); Geometry sourceGeometry = geometryFactory.createPoint(coord); MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS); Geometry targetGeomery = JTS.transform(sourceGeometry, transform); Point targetPoint = targetGeomery.getCentroid(); System.out.println( "변환전 EPSG:4326(WGS84) X : " +x + "\t EPSG:4326(WGS84) Y : " +y); System.out.println( "변환후 EPSG:3857 X : " +targetPoint.getX() + "\t EPSG:3857 Y : " +targetPoint.getY()); } public static void main(String[] args) throws Exception { GeoTransTest g = new GeoTransTest( "EPSG:4326" , "EPSG:3857" ); g.transform( "37.5639686" , "126.9794393" ); } } |
자바 진법 변환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import java.util.LinkedList; import java.util.Scanner; public class Test1 { public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println( "변환할 숫자를 입력하세요." ); String value = sc.next(); for ( int i= 2 ;i<= 16 ;i++){ LinkedList list = convert(Integer.parseInt(value),i); System.out.print(value + "의 " + i + " 진법 : " ); while (!list.isEmpty()){ System.out.print(list.pop()); } } } public static LinkedList convert( int value, int i){ LinkedList<string> list = new LinkedList(); while (value != 0 ){ // 나머지가 0~9 사이 일때 if ((value % i)< 10 ){ list.push(String.valueOf((value % i))); } else { // 나머지가 10 이상일때 해당하는 알파뱃을 저장 char temp1 = ( char )((value % i)+ 55 ); list.push(String.valueOf(temp1)); } //몫을 구함 value /= i; } return list; } } </string> |
카카오 지도 api 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLEncoder; import javax.net.ssl.HttpsURLConnection; public class KakaoGeoApi1 { public static void main(String[] args) throws Exception { System.out.println(addrToCoord(URLEncoder.encode( "주소입력" , "UTF-8" ))); System.out.println(coordToAddr( "37.5665958" , "126.9783813" )); } public static String addrToCoord(String addr){ String json = "" ; try { json = getJSONData(url); } catch (Exception e){ e.printStackTrace(); } return json; } public static String coordToAddr(String x, String y){ String url = "https://dapi.kakao.com/v2/local/geo/coord2address.json?x=" +x+ "&y=" +y+ "&input_coord=WGS84" ; String json = "" ; try { json = getJSONData(url); } catch (Exception e){ e.printStackTrace(); } return json; } private static String getJSONData(String apiUrl) throws Exception { String jsonString = new String(); String buf; String apikey = "apikey" ; //apikey URL url = new URL(apiUrl); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); String auth = "KakaoAK " +apikey; conn.setRequestMethod( "GET" ); conn.setRequestProperty( "X-Requested-With" , "curl" ); conn.setRequestProperty( "Authorization" , auth); BufferedReader br = new BufferedReader( new InputStreamReader( conn.getInputStream(), "UTF-8" )); while ((buf = br.readLine()) != null ) { jsonString += buf; } return jsonString; } } |
네이버 지도 api 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class NaverGeoApi { public static void main(String[] args) { String clientId = "clientId " ; //clientId String clientSecret = "clientSecret " ; //clientSecret try { String addr = URLEncoder.encode( "주소입력" , "UTF-8" ); //주소입력 String apiURL = "https://naveropenapi.apigw.ntruss.com/map-geocode/v2/geocode?query=" + addr; //json //String apiURL = "https://openapi.naver.com/v1/map/geocode.xml?query=" + addr; // xml URL url = new URL(apiURL); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setRequestMethod( "GET" ); con.setRequestProperty( "X-NCP-APIGW-API-KEY-ID" , clientId); con.setRequestProperty( "X-NCP-APIGW-API-KEY" , clientSecret); int responseCode = con.getResponseCode(); BufferedReader br; if (responseCode== 200 ) { br = new BufferedReader( new InputStreamReader(con.getInputStream())); } else { br = new BufferedReader( new InputStreamReader(con.getErrorStream())); } String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = br.readLine()) != null ) { response.append(inputLine); } br.close(); System.out.println(response.toString()); } catch (Exception e) { System.out.println(e); } } } |
2018년 10월 25일 목요일
servlet-context.xml
servlet-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- new -->
<!-- DI -->
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<mvc:annotation-driven />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<mvc:resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
<context:component-scan base-package="com.test.jjdev" />
<!-- 커넥션 풀 설정 -->
<!--
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(driverClassName);
.
.
.
for() {
dataSource.list.add(connection);
}
-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/ksmart?useUnicode=true&characterEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="java0000"/>
</bean>
<!-- mybatis설정 1. SqlSessionFactory -->
<!--
SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- mybatis 세션생성시 사용할 dataSource주입 -->
<!--
sqlSessionFactory.setDataSource(dataSource);
value와 ref의 차이 정리하기
-->
<property name="dataSource" ref="dataSource" />
<!-- mybatis 세션생성후 쿼리를 실행시킬때 사용할 쿼리위치(메퍼)설정 -->
<property name="mapperLocations">
<list>
<value>classpath:com/test/jjdev/service/BoardMapper.xml</value>
<value>classpath:com/test/jjdev/service/MemberMapper.xml</value>
</list>
</property>
</bean>
<!-- mybatis설정 2. SqlSessionTemplate-->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<!-- new SqlSessionTemplate(sqlSessionTemplate) -->
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
</beans>
피드 구독하기:
글 (Atom)