import?dao.CourseDao;
創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,先為云岡等服務(wù)建站,云岡等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為云岡企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
import?java.io.IOException;
import?java.io.PrintWriter;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;//以上?import?為導(dǎo)入的包
public?class?CourseServlet?extends?HttpServlet?{//CourseServlet?繼承HttpServlet
/**
?*?doGet方法,處理GET請求
?*/
public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
doPost(request,?response);
}
/**
?*?doPost方法,處理POST請求
?*/
public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)
throws?ServletException,?IOException?{
response.setContentType("text/html");//設(shè)置內(nèi)容類型為“text/html”
PrintWriter?out?=?response.getWriter();//獲取輸出流
String?opttype?=?request.getParameter("opttype");//讀取參數(shù)"opttype"
String?c_no?=?request.getParameter("c_no");//讀取參數(shù)"c_no"
if?("queryAll".equals(opttype))?{//判斷操作類型
request.getSession().setAttribute("cuslist",
CourseDao.queryallCourse());//綁定參數(shù)"cuslist"
response.sendRedirect("admin_pages/course.jsp");//頁面跳轉(zhuǎn)到"admin_pages/course.jsp"
}
if?("query".equals(opttype))?{//判斷操作類型
request.getSession().setAttribute("cuslist",
CourseDao.queryallCourse(c_no));//綁定參數(shù)"cuslist"
response.sendRedirect("admin_pages/course.jsp");//頁面跳轉(zhuǎn)到"admin_pages/course.jsp"
}
if?("update".equals(opttype))?{//判斷操作類型
request.getSession().setAttribute("c_no",?c_no);//綁定參數(shù)"cuslist"
request.getSession().setAttribute("cuslist",
CourseDao.queryallCourse());//綁定參數(shù)"cuslist"
response.sendRedirect("admin_pages/course.jsp");//頁面跳轉(zhuǎn)到"admin_pages/course.jsp"
}
if?("update1".equals(opttype))?{//判斷操作類型
String?c_time=request.getParameter("c_timexiugai");
CourseDao.updateList(c_no,?c_time);//綁定參數(shù)"cuslist"
request.getSession().setAttribute("cuslist",
CourseDao.queryallCourse());//綁定參數(shù)"cuslist"
response.sendRedirect("admin_pages/course.jsp");//頁面跳轉(zhuǎn)到"admin_pages/course.jsp"
}
if?("delete".equals(opttype))?{//判斷操作類型
CourseDao.deletelist(c_no);
request.getSession().setAttribute("cuslist",//綁定參數(shù)"cuslist"
CourseDao.queryallCourse(c_no));//綁定參數(shù)"cuslist"
response.sendRedirect("admin_pages/course.jsp");//頁面跳轉(zhuǎn)到"admin_pages/course.jsp"
}
out.close();//關(guān)閉輸出流
}
}
public class AccountTester {
public static void main(String args[]) {
BankAccount anAccount; //聲明一個BankAccount的對象anAccount
anAccount = new BankAccount("張鋒", 100001,0); //實例化BankAccount的對象anAccount,名字為張鋒, 號碼為100001,0應(yīng)該是balance
anAccount.setBalance(anAccount.getBalance() + 200); //將張鋒賬戶的余額balance增加200
System.out.println(anAccount); //打印輸出anAccount的信息
anAccount = new BankAccount("李薇", 100002,0); ////實例化BankAccount的對象anAccount,名字為李薇, 號碼為100002,0應(yīng)該是balance
System.out.println(anAccount); //打印剛實例完的anAccount賬戶信息
anAccount.deposit(238.67f); //往李薇賬戶存入238.67元
anAccount.deposit(800.00f); //往李薇賬戶存入800.00元
System.out.println(anAccount); //打印輸出李薇anAccount的信息
anAccount.withdraw(100.17f); //從李薇賬戶支出100.17元
System.out.println(anAccount); //打印輸出李薇anAccount的信息
}
}
你要這個干嗎?
屬于重點,在系統(tǒng)中用到注解權(quán)限時非常有用,可以精確控制權(quán)限的粒度
注意:要想使用反射去讀取注解,必須將Retention的值選為Runtime Java代碼import?java.lang.annotation.Annotation;import?java.lang.reflect.Method;//讀取注解信息public?class?ReadAnnotationInfoTest?{????public?static?void?main(String[]?args)?throws?Exception?{????????//?測試AnnotationTest類,得到此類的類對象????????Class?c?=?Class.forName(com.iwtxokhtd.annotation.AnnotationTest);????????//?獲取該類所有聲明的方法????????Method[]?methods?=?c.getDeclaredMethods();????????//?聲明注解集合????????Annotation[]?annotations;????????//?遍歷所有的方法得到各方法上面的注解信息????????for?(Method?method?:?methods)?{????????????//?獲取每個方法上面所聲明的所有注解信息????????????annotations?=?method.getDeclaredAnnotations();????????????//?再遍歷所有的注解,打印其基本信息????????????System.out.println(method.getName());????????????for?(Annotation?an?:?annotations)?{????????????????System.out.println(方法名為:?+?method.getName()?+?其上面的注解為:?+?an.annotationType().getSimpleName());????????????????Method[]?meths?=?an.annotationType().getDeclaredMethods();????????????????//?遍歷每個注解的所有變量????????????????for?(Method?meth?:?meths)?{????????????????????System.out.println(注解的變量名為:?+?meth.getName());????????????????}????????????}????????}????}}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GameTest extends JFrame implements ActionListener{
/*
* 新建一個主面板(這個類可能是自定義的,本程序和API中沒有)。
*/
MainPanel j=new MainPanel();
JButton jPreview;
JLabel label;
Container container;
JPanel panel;
/**
* 主函數(shù)
* @param args
*/
public static void main(String[] args) {
//運行程序
new GameTest();
}
/**
* 構(gòu)造函數(shù)。
*
*/
public GameTest()
{
//新建一個標題為“拼圖”的窗口
JFrame fr =new JFrame("拼圖");
//獲取窗口容器。
container=fr.getContentPane();
//創(chuàng)建菜單條
JMenuBar jMenuBar=new JMenuBar();
//以下初始化菜單,并且設(shè)置快捷鍵和添加監(jiān)聽器。
JMenu jMenuGame=new JMenu("游戲(G)");
jMenuGame.setMnemonic('g');
JMenuItem jMenuItemStart = new JMenuItem("開始(S)");
jMenuItemStart.setMnemonic('s');
jMenuItemStart.addActionListener(this);
JMenuItem jMenuItemExit=new JMenuItem("退出(E)");
jMenuItemExit.setMnemonic('e');
jMenuItemExit.addActionListener(this);
jMenuGame.add(jMenuItemStart);
jMenuGame.add(jMenuItemExit);
//初始化按鈕并設(shè)置快捷鍵和添加監(jiān)聽器
JButton jChoice=new JButton("選圖(X)");
jChoice.setMnemonic('x');
jChoice.addActionListener(this);
jPreview=new JButton("預(yù)覽(P)");
jPreview.setMnemonic('p');
jPreview.addActionListener(this);
//將菜單和按鈕添加到菜單條中
jMenuBar.add(jMenuGame);
jMenuBar.add(jChoice);
jMenuBar.add(jPreview);
//將菜單條設(shè)為該窗口的主菜單
fr.setJMenuBar(jMenuBar);
//將主面板添加到該窗口的容器中。
container.add(j);
//設(shè)置大小
fr.setSize(315,360 );
fr.setVisible(true);
//設(shè)置默認關(guān)閉方式。
fr.setDefaultCloseOperation(3);
}
/**
* 事件處理函數(shù)。
*/
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand()=="開始(S)")
{
j.Start();
}
if(e.getActionCommand()=="預(yù)覽(P)")
{
j.setVisible(false);
panel=new JPanel();
Icon icon=new ImageIcon("pictrue/pic"+"_"+MainPanel.pictureID+".jpg");
label=new JLabel(icon);
label.setBounds(300, 300, 0, 0);
panel.add(label);
panel.setSize(300, 300);
panel.setVisible(true);
this.container.add(panel);
jPreview.setText("返回(P)");
}
if(e.getActionCommand()=="返回(P)")
{
panel.setVisible(false);
j.setVisible(true);
j.repaint();
jPreview.setText("預(yù)覽(P)");
}
if(e.getActionCommand()=="退出(E)")
{
System.exit(0);
}
if(e.getActionCommand()=="選圖(X)")
{
//初始化選擇框,并提供選擇。
Choice pic = new Choice();
pic.add("七里香");
pic.add("依然范特西");
pic.add("八度空間");
pic.add("十一月的肖邦");
pic.add("魔杰座");
pic.add("葉惠美");
pic.add("我很忙");
int i=JOptionPane.showConfirmDialog(this, pic, "選擇圖片", JOptionPane.OK_CANCEL_OPTION);
if(i==JOptionPane.YES_OPTION)
{
//選擇圖片
MainPanel.pictureID=pic.getSelectedIndex()+1;
j.removeAll();
j.reLoadPicture();
j.repaint();
}
}
}
}
正則的效率非常低,有很多不用正則的好方法:
一,示例 某java程序
比如說一個Test2.java,將其保存在C盤根目錄下,代碼內(nèi)容如下
/**
* @author xxx
*
*/
public class Test2 {
/* main method */
public static void main(String[] args) {
//a
int a =5;
//b
int b =5;
//a+b
System.out.println(a+b);
}
}
二,提取注釋程序,將所有注釋放到一個List里面,最后打印輸出:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class Test {
private static final String javaFilePath = "C:/Test2.java";
public static void main(String[] args) throws IOException {
ListString comments = new ArrayListString();
BufferedReader bfr = new BufferedReader(new InputStreamReader(new FileInputStream(javaFilePath)));
String line=null;
while((line=bfr.readLine())!=null){
line = line.trim();
if(line.startsWith("http://")){
comments.add(line);
}
else if(line.startsWith("/*")line.endsWith("*/")){
comments.add(line);
}else if(line.startsWith("/*")!line.endsWith("*/")){
StringBuffer multilineComment = new StringBuffer(line);
while((line=bfr.readLine())!=null){
line = line.trim();
multilineComment.append("\n").append(line);
if(line.endsWith("*/")){
comments.add(multilineComment.toString());
break;
}
}
}
}
bfr.close();
for(int i=0;icomments.size();i++){
System.out.println("第"+(i+1)+"處注釋: ");
System.out.println(comments.get(i));
}
}
}
三,輸出結(jié)果:
第1處注釋:
/**
* @author xxx
*
*/
第2處注釋:
/* main method */
第3處注釋:
//a
第4處注釋:
//b
第5處注釋:
//a+b
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class tt
extends Frame
implements ActionListener {
static tt frm = new tt();
//創(chuàng)建一個菜單欄
static MenuBar menubar = new MenuBar();
//創(chuàng)建一個下拉式菜單組件——"文件"
static Menu menu1 = new Menu("文件");
//創(chuàng)建一個下拉式菜單組件——"關(guān)于"
static Menu menu2 = new Menu("關(guān)于");
//創(chuàng)建一個菜單的所有項——"打開"
static MenuItem item1 = new MenuItem("打開");
//創(chuàng)建一個菜單的所有項——"保存"
static MenuItem item2 = new MenuItem("保存");
//創(chuàng)建一個菜單的所有項——"關(guān)于我們"
static MenuItem item3 = new MenuItem("關(guān)于我們");
//FileDialog 類顯示一個對話框窗口,用戶可以從中選擇文件。
static FileDialog dia1 = new FileDialog(frm, "打開");
//FileDialog.SAVE此常量值指示文件對話框窗口的作用是查找要寫入的文件。
static FileDialog dia2 = new FileDialog(frm, "保存", FileDialog.SAVE);
//創(chuàng)建一個文本區(qū)
static TextArea txa = new TextArea();
//創(chuàng)建一個窗口事件對象
static WinLis wlis = new WinLis();
public static void main(String agrs[]) {
//創(chuàng)建一個邊框布局
BorderLayout br = new BorderLayout();
//設(shè)置Frame的title
frm.setTitle("小記事本");
/*將下拉式菜單menu1、menu2添加到菜單欄中*/
menubar.add(menu1);
menubar.add(menu2);
/*將菜單item1、item2添加到下拉式菜單menu1中,將菜單item3添加到下拉式菜單menu2中*/
menu1.add(item1);
menu1.add(item2);
menu2.add(item3);
/*為item1、item2、item3添加指定的動作偵聽器,以從此菜單項接收動作事件*/
item1.addActionListener(frm);
item2.addActionListener(frm);
item3.addActionListener(frm);
//將文本去txa添加到Frame中
frm.add(txa);
//將此窗體的菜單欄設(shè)置為指定的menubar菜單欄。
frm.setMenuBar(menubar);
//調(diào)整Frame組件的大小寬800高650
frm.setSize(800, 650);
//顯示組件
frm.setVisible(true);
/*為組件添加窗口事件*/
frm.addWindowListener(wlis);
frm.addWindowListener(wlis);
}
/*窗口事件的實現(xiàn),在關(guān)閉窗口的同時關(guān)閉運行程序*/
static class WinLis
extends WindowAdapter {
public void windowClosing(WindowEvent e) {
frm.dispose();
}
}
public void actionPerformed(ActionEvent e) {
//獲取當前點擊的菜單對象,getSource()返回最初發(fā)生 Event 的對象。
MenuItem item = (MenuItem) e.getSource();
if (item == item1) {
dia1.setVisible(true);
/*getDirectory()獲取dia1對話框的目錄,getFile()獲取dia1對話框的選定文件*/
String fname = dia1.getDirectory() + dia1.getFile();
try {
//創(chuàng)建一個文件輸入字節(jié)流
FileInputStream fi = new FileInputStream(fname);
/*fi.available()返回下一次對此輸入流調(diào)用的方法可以不受阻塞地從此輸入流讀?。ɑ蛱^)的估計剩余字節(jié)數(shù)*/
byte ba[] = new byte[fi.available()];
//從此輸入流中將最多ba.length個字節(jié)的數(shù)據(jù)讀入到一個byte數(shù)組中
fi.read(ba);
//將值賦到文本區(qū)中(new String(ba)將字符轉(zhuǎn)換成字符串).
txa.setText(new String(ba));
//關(guān)閉輸入流
fi.close();
}
catch (IOException ioe) {}
;
}
if (item == item2) {
dia2.setVisible(true);
//getDirectory()獲取dia2對話框的目錄
String fname2 = dia2.getDirectory();
//dia2.getFile()獲得dia2對話框中的選定文件,并為其拼接上后綴.txt
File file = new File(dia2.getFile() + ".txt");
//獲得文本區(qū)中的內(nèi)容
String s = txa.getText();
try {
//創(chuàng)建一個文本寫入字符輸出流,F(xiàn)IleWriter用來寫入字符文件的便捷類
BufferedWriter out = new BufferedWriter(new FileWriter(fname2 + file));
//寫入
out.write(s);
//關(guān)閉流
out.close();
}
catch (Exception ioe) {
ioe.printStackTrace();
}
}
}
}
關(guān)于選項幫你添上了(事件監(jiān)聽也加上了),具體要實現(xiàn)什么功能,自己看著加吧!