81,090
社区成员
发帖
与我相关
我的任务
分享
if (year.matches("\\d{4}")) {
y = Integer.parseInt(year);
} else {
request.setAttribute("error", "年份输入错误");
dispatcher.forward(request, response);
return;
}
if (month.matches("\\d{1,2}")) {
m = Integer.parseInt(month);
} else {
request.setAttribute("error", "月份输入错误");
dispatcher.forward(request, response);
return;
}
<%@ page contentType="text/html; charset=gbk"%>
<html>
<body>
<span style="color: #ff0000">${error}</span>
<form action="Process" method="post">
<input type="text" name="year" maxlength="4" size="4" value="${year}">年
<input type="text" name="month" maxlength="2" size="4" value="${month}">月
<input type="text" name="day" maxlength="2" size="4" value="${day}">日<br/>
Text1: <input type="text" name="text1" value="${text1}"><br/>
Text2: <input type="text" name="text2" value="${text2}"><br/>
Text4: <input type="text" name="text4" value="${text4}" readonly="readonly"><br/>
<input type="submit" value="确定"/>
</form>
</body>
</html>
package com.service;
public class Service {
public String encrypt(String strSource, int key1, int key2) {
int bLowData;
int bHigData;
StringBuffer strEncrypt = new StringBuffer();
char[] strChar = strSource.toCharArray();
for (int i = 4; i < strChar.length; i++) {
byte[] b = (strChar[i]+"").getBytes();
bLowData = (int)b[0] ^ key1;
bHigData = bLowData ^ key2;
while(bHigData > 122) {
bHigData -= 122;
}
if (bHigData < 48) {
bHigData += 74;
}
if (bHigData > 57 && bHigData < 65) {
bHigData += 8;
}
if (bHigData > 90 && bHigData < 97) {
bHigData += 7;
}
strEncrypt.append((char)bHigData);
}
return strEncrypt.toString();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>Process</servlet-name>
<servlet-class>com.servlet.ProcessServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Process</servlet-name>
<url-pattern>/Process</url-pattern>
</servlet-mapping>
</web-app>
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.service.Service;
public class ProcessServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gbk");
response.setCharacterEncoding("gbk");
String text1 = request.getParameter("text1");
String text2 = request.getParameter("text2");
String year = request.getParameter("year");
String month = request.getParameter("month");
String day = request.getParameter("day");
request.setAttribute("text1", text1);
request.setAttribute("text2", text2);
request.setAttribute("year", year);
request.setAttribute("month", month);
request.setAttribute("day", day);
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher("/index.jsp");
int y = 0;
int m = 0;
if (year.matches("\\d{4}")) {
y = Integer.parseInt(year);
} else {
request.setAttribute("error", "年份输入错误");
dispatcher.forward(request, response);
}
if (month.matches("\\d{1,2}")) {
m = Integer.parseInt(month);
} else {
request.setAttribute("error", "月份输入错误");
dispatcher.forward(request, response);
}
int kk = 0;
int k2 = 0;
String ss;
String encry;
char[] chars = text1.toCharArray();
for (int i = 0; i < chars.length; i++) {
kk += chars[i];
}
kk = kk % 15 + 12;
k2 = y - 1900 + 46;
while (k2 > 255) {
k2 -= 255;
}
if ((m + "").length() == 2) {
m = m % 10;
}
ss = text1 + year;
if (text1.length() < 15 || "".equals(text2)) {
request.setAttribute("error", "请仔细核对!请重新注册!");
dispatcher.forward(request, response);
} else {
Service service = new Service();
encry = service.encrypt(ss, kk, k2);
request.setAttribute("text4", encry);
dispatcher.forward(request, response);
}
}
}
// 这些部分需要根据页面上所取到的参数来替换掉
$$text = Text1.Text
$$text2 = Text2.Text
$$year = DTPicker2.Year
$$mou = DTPicker2.Mont;
int kk = 0;
int k2 = 0;
int mou = 0;
String ss;
String encry;
char[] chars = $$text.toCharArray();
for(int i = 0; i < chars.length; i++) {
kk += chars[i];
}
kk = kk % 15 + 12;
k2 = $$year - 1900 + 46;
while(k2 > 255) {
k2 -= 255;
}
mou = $$mou;
if((mou+"").length() == 2) {
mou = mou % 10;
}
ss = $$text + $$year;
if($$text.length() < 15 || "".equals($$text2)) {
request.setAttribute("error", "请仔细核对!请重新注册!");
}else{
encry = encrypt(ss, kk, k2);
request.setAttribute("emcry", encry);
}
public String encrypt(String strSource, int key1, int key2) {
int bLowData;
int bHigData;
StringBuffer strEncrypt = new StringBuffer();
char[] strChar = strSource.toCharArray();
for (int i = 4; i < strChar.length; i++) {
byte[] b = (strChar[i]+"").getBytes();
bLowData = (int)b[0] ^ key1;
bHigData = bLowData ^ key2;
while(bHigData > 122) {
bHigData -= 122;
}
if (bHigData < 48) {
bHigData += 74;
}
if (bHigData > 57 && bHigData < 65) {
bHigData += 8;
}
if (bHigData > 90 && bHigData < 97) {
bHigData += 7;
}
strEncrypt.append((char)bHigData);
}
return strEncrypt.toString();
}