📄 insertword.java
字号:
package cn.avl.wordcard.servlet;
import cn.avl.wordcard.service.*;
import cn.avl.wordcard.domain.*;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.ServletConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;
public class InsertWord extends HttpServlet{
private ServletConfig servletConfig=null;
private String successView=null;
private String failureView=null;
private String sessionUserInfo=null;
private WordcardService service;
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{
successView=request.getContextPath()+servletConfig.getInitParameter("successView");
failureView=request.getContextPath()+servletConfig.getInitParameter("failureView");
sessionUserInfo=servletConfig.getInitParameter("sessionUserInfo");
String wordStr = (String)request.getParameter("word");
String explanationStr = (String)request.getParameter("explanation");
String[] token = explanationStr.split("\n");
Word word = new Word(wordStr);
char firstCh = wordStr.charAt(0);
String first = new Character(firstCh).toString();
String location = first+"\\"+".wma";
word.setLocation(location);
word.setPhonogram(token[0].trim());
word.setFirst(first);
if(!service.insertWord(word)){
response.sendRedirect(failureView);
return;
}
int j = 1;
int length = token.length;
boolean flag = false;//表示插入是否成功
int exp = 1; //表示第几条解释
while( j < length ){
String category = token[j].trim();
j++;
Explanation explanation = new Explanation();
Sentence sentence = new Sentence();
while(j < token.length && !isCategory(token[j].trim())){
String meaning = token[j++].trim(); //中文解释
String expID = wordStr+new Integer(exp).toString(); //解释ID
//生成一个解释对象
explanation.setExpID(expID); explanation.setCategory(category);
explanation.setMeaning(meaning); explanation.setWord(wordStr);
//生成一个例句
if(j < token.length && isSentence(token[j].trim())){
sentence.setExpID(expID);
sentence.setSentence(token[j++].trim());
sentence.setTranslation(token[j++].trim());
}else{
sentence.setExpID(null);
}
exp++;
if(service.insertExplanation(explanation)){
flag = true;
if(sentence.getExpID() != null && !service.insertSentence(sentence)) flag = false;
}
}
}
if(flag) response.sendRedirect("/wordcard/pages/show_word.jsp?word="+wordStr);
else response.sendRedirect(failureView);
}
public void init(ServletConfig servletConfig) throws ServletException {
this.servletConfig=servletConfig;
this.service = ServiceFactory.getWordcardService();
}
private boolean isCategory (String str){
return str.equals("vt.") || str.equals("vi.") || str.equals("n.") || str.equals("adj.")
|| str.equals("adv.") || str.equals("vt. & vi.") || str.equals("prep.") || str.equals("conj.");
}
private boolean isSentence(String str){
if(isCategory(str)){return false;}
char first = str.charAt(0);
return 'A' <= first && 'Z' >= first;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -