Friday, November 7, 2014

Một số câu hỏi ôn tập môn học DBSJ

 

Một số câu hỏi ôn lý thuyết

1. JDBC and ODBC are identical?
A. True
B. False
2. How many kinds of JDBC drivers?
A. 10
B. 3
C. 4
D. many
3. The JDBC API is a Java API for accessing virtually any kind of tabular data
A. False
B. True
4. What is the correct statement about CallableStatement interface? (choose 1)
A. It defines a statement to create a stored-procedure
B. It contains a call to a stored-procedure
C. It defines a store-procedure
5. Which is the default port number of RMI Registry Server?
A. 1023
B. 1099
C. 1069
6. Which of the following statements is correct for retrieving all fields from Student table?
A. String sql=”SELECT FROM Student”;
Statement st=cn.createStatement(sql);
ResultSet rs=st.executeQuery();
B. String sql=”SELECT FROM Student”;
Statement st=cn.createStatement();
ResultSet rs=st.executeQuery(sql);
7. If you need to use a stored procedure with output parameters, which of the following statement type should be used to call the procedure?
A. PreparedStatement
B. CallableStatement
C. Statement
8. From which object do you ask for DatabaseMetaData?
A. DriverManager
B. ResultSet
C. Connection
D. Driver
9. Which character is used to represent an input parameter in a CallableStatement?
A.
B. #
C. ?
D. %
10. Which one of the following will not get the data from the first column of ResultSet rs, returned from executing SQL statement: SELECT name, rank, serialNo FROM employee.
A. rs.getString(“name”);
B. rs.getString(1);
C. rs.getString(0);
11. Which class contains the transaction control method setAutoCommit, commit, and rollback?
A. Statement
B. Connection
C. ResultSet
12. You can use an applet in RMI program as ________
A. None of the other options
B. Server program
C. Client program
13. Which of the following will not cause a JDBC driver to be loaded and registered with the DriverManager?
A. Class.forName(driverString);
B. new DriverClass();
C. Include driver name in jdbc.drivers system property
D. None of the above
14. SQLWarnings from multiple Statement method calls (like executeUpdate) will build up until you ask for them all with getWarnings and getNextWarning.
A. True
B. False
15. If one intends to work with a ResultSet, which of these PreparedStatement methods will not work?
A. execute()
B. executeQuery()
C. executeUpdate()
16. Can a ResultSet be reliably returned from a method that creates a Statement and executes a query?
A. Yes
B. No
17. How can I use JDBC to create a database?
A. Include create=true at end of JDBC URL
B. Execute "CREATE DATABASE jGuru" SQL statement
C. Execute "STRSQL" and "CREATE COLLECTION jGuru" SQL statements
D. Database creation is DBMS specific
18. Which of the following can you do with a JDBC 2.0 database driver that you cannot with a JDBC 1.x driver?
A. Batch multiple statements, to be sent to the database together
B. Scroll through result sets bi-directionally
C. Work with SQL3 data types directly
D. All of the above
19. A __________ result set has a cursor that moves both forward and backward and can be moved to a particular row
A. scrollable
B. nonscrollable
C. Unscrollable
20. The method___________ is designed for statements that produce a single result set, such as SELECT statement
A. executeUpdate
B. execute
C. Update
D. executeQuery
21. Which three of the following are classes of Java.rmi package?
A. Naming
B. MarshalledObject
C. RMISecurityManager
D. Remote
22. Which option of jar file indicates manifest file not created?
A. Jar M
B. Jar t
c. Jar m
D. Jar c
23. _______ option of Jar command makes a Java archive file.
A. JAR -c
B. JAR -m
C. JAR -v
D. JAR –f
24. Which command adds the file file.class to Xyz.jar?
A. jar – uf Xyz . jar file.class
B. jar – xf Xyz . jar
C. jar – tf Xyz . jar
25. Driver types are used to categorize the technology used to connect to the database.
A. True
B. False
26. This is an Application Programming Interface provided by Microsoft for access the database.It uses SQL as its database language.
A. JDBC
B. ODBC
27. JDBC is ODBC translated into an object-oriented interface that is natural for java programmers.
A. True
B. False
28. In this Data processing Model,the client communicates directly to the database server without the help of any middle-ware technologies or another server.
A. Two-tier Data processing Model
B. Three - tier Data processing Model
29. The Type 1 driver is also known as JDBC-ODBC bridge plus ODBC driver.
A. Translates JDBC calls into ODBC calls.
B. Translates JDBC calls into database=specific calls or native calls
C. Maps JDBC calls to the underlying "network" protocol, which in turn calls native methods on the server.
D. Directly calls RDBMS from client machine.
30. This method is used to execute INSERT, DELETE, UPDATE , and other SQL DDL such as CREATE, DROP Table.
A. executeUpdate();
B. execute();
C. executeQuery();
31. This method is used for retrieving a string value (SQL type VARCHAR) and assigning into java String object.
A. getVarchar();
B. getObject();
C. getString();
32. This method is used for retrieving the value from current row as object.
A. getRow();
B. getObject();
C. getString();
33. This object connects to a data source only to read data from a ResultSet or write data back to the data source.
A. A Connected RowSet.
B. A Disconnected RowSet.
34. A client application uses stored procedures increases the network traffic, but it reduces the number of times a database is accessed.
A. True
B. False
35. This parameter is used to pass values into a store procedure.The value of this parameter cannot changed or reassigned within the module and hence is constant.
A. IN
B. OUT
C. IN/OUT
36. OUT Parameter. - 3 choices.
A. pass out of procedure module
B. is a constant
C. is a variable
D. back to the calling block
37. This Parameter behaves like an initialized variable.
A. OUT
B. IN
C. IN/OUT
38. This object does not contain the stored procedure itself but contains only a call to the stored procedure.
A. CallableStatment
B. PreparedStatment
C. prepareCall();
39. This refers to the ability to check whether the cursor stays open after a COMMIT
A. Updatable
B. Holdable
C. Scrollable
40. The prepareStatment() method sends SQL query to the database. and this returns:
A. PrepareStatment Object
B. Callalbalestatment Object
C. PrepareCall () method.
41. The CallableStatment object contains the SQL statments.
A. True
B. False
42. A cursor that can only be used to process from the beginning of a ResultSet to the end of it.It is default type.
A. TYPE_SCROLL_SENSITIVE
B. TYPE_SCROLL_INSENSITIVE
C. TYPE_FORWARD_ONLY
43. A Rowset Object provides scrollability and updatability for any kind of DBMS or drivers.
A. True
B. False
44. A ResultSet object contains a set of rows from a result set or some other source of tabular data, like a file or spreadsheet.
A. true
B. false
45. Which class is a disconnected rowset.
A. A CachedRowSet class.
B. A JDBCRowSet class.
C. A WebRowSet class.
46. Which statments are true?
A. A RowSet has to be make scrollable and updatable at the time of creation.
B. Scrollability and Updatability of a RowSet is independent of the JDBC driver
C. A connect RowSet can read data from a non relational database source also.
D. A RowSet is a JavaBeans component which has to programmatically notify all registered event listener.
47. The Result Set can not be modified and hence, It is not updatable in any way.
A. CONCURENT_READ_ONLY
B. CONCURENT_UPDATABLE
48. This is the mechanism of encoding information in a secret coded form, intented only for the recipient to access the information.
A. Cryptography
B. Encryption
49. The term "encrypting " pertains to converting plaintext to ciphertext, which is again decrypted into usable plaintext.
A. True
B. False
50. This transforms the input, called the plaintext, to an output, known as ciphertext. this is known as Symmetric cryptography.
A. Hash Function
B. Secret key cryptography
C. Public Key cryptography
51. This is as asymmetric cryptography, It operates under two different keys.
A. Public Key cryptography
B. Hash Function
C. Secret key cryptography
52. This is algorithms that does not use any key, it is known as message digest.
A. Secret key cryptography
B. Public Key cryptography
C. Hash Function
53. Which statements are true?
A. The Tamper-proofing process verifies whether the data received by the receiver is the same data as sent by the sender.
B. Spoofing or identity interception, which means impersonating the identity of a different user and use it in an unauthorized way
C. Authentication is the process that provides tamper-proofing, while it is on the network.
54. The class is use to hash value of the specified data.
A. Message Digest
B. Signature
C. KeyPair Generator
D. KeyFactory
E. Certificate Factory
55. The 'Native API-Java/Party Java' is Driver Type
A. I
B. II
C. III
D. IV
56. The 'Native Protocol - All Java' is Driver Type
A. I
B. II
C. III
D. IV
57. Statement and PreparedStatement is inherited from Statement Interface. The CallableStatement is inherited from PreparedStatement interface.
A. True
B. False
58. This Method return an Integer value indicating the row count.
A. ExecuteQuery();
B. Execute();
C. ExecuteUpdate();
59. If row value is 0, this method has no effect.If row value is positive, the cursor is moved forward that many row.
A. relative(int row) method
B. absolute(int row) method.
60. Calling absolute(1) is equivalent to calling last()
A. True
B. False
61. Which statements are true? (3 choices)
A. In Scrollable ResultSet, the cursor is positioned on the first row.
B. A default ResultSet object is not updated and has a cursor that moves forward only.
C. The ResultSet should be compulsorily closed after a COMMIT statement.
D. Holdable refers to ability to check whether the cursor stays open after a COMMIT.
E. The createStatement method has two argurments namely resultSetType and resultSetConcurrency
62. Which statements are true? (3 choices)
A. The original message text has to be transmitted separately since the content of a digitally signed message is altered irreversibly.
B. A Certification authority creates a signed certificate by encrypting the digitally signature with its private key.
C. The digital signature and sender's public key are appended to end of a message.
D. A recipient decrypts a signed signature using its own public key.
E. The integrity of a message cannot be ensure while using message digests
63. This comprises the mapping of one or more permissions with a class.
A. Security Manager
B. Policy File
C. Access Controller
64. The class is use to produce a pair of public and private keys appropriate for a specified.
A. Signature
B. Message Digest
C. KeyPair Generator
D. KeyFactory
E. Certificate Factory
65. The class is used to sign and check the authenticity of digital signature
A. Message Digest
B. Signature
C. Certificate Factory
D. KeyFactory
E. KeyPair Generator
66. The class is used to transform opaque keys of type Key into key specifications and provide transparent representations of the underlying key material and vice versa.
A. Message Digest
B. KeyPair Generator
C. Signature
D. KeyFactory
E. Certificate Factory
67. The class is used to generate public key certificates.
A. Certificate Factory
B. KeyPair Generator
C. Message Digest
D. Signature
E. KeyFactory
68. This class is a database of keys and certificates
A. Algorithm Parameters
B. KeyStore
C. Key
D. KeySpec
69. this ensures that a user or a business organization or a program entity has performed a transaction.
A. Non-repudiation
B. Tampering
C. Integrity
D. Confidentiality
70. Data integrity is to protect data from getting tampered, while it is on the network.
A. True
B. False
71. This is a framework written in java to access and develop cryptographic functionality, and forms part of the java security API.
A. JCA
B. JCE
72. With this padding technique a short block is padded with a repeating byte.
A. DES
B. PKCS5
C. CBC
73. Single-bit ciphers are called:
A. Block cipher
B. Stream cipher
74. Cipher objects are created using this method of the cipher class.
A. getInstance();
B. init();
75. the cipher object is initialized by the init() method?
A. True
B. False
76. The Code : "DES/CBC/PKCS5Padding" is the form of
A. "mode/algorithm/padding"
B. "algorithm/mode/padding"
C. "algorithm/padding/mode"
D. "DeCrypto/Cipher/padding"
77. "(Only)algorithm" such as
A. "DES"
B. "PKCS5"
C. "CBE"
78. Most these implementations mix a random number, known as the "salt" with the password text to derive an encrypted key.
A. Encryption and Decryption
B. Key Agreement
C. Password Base Encryption
79. Single bits or a block of bits can be encrypted into cipher blocks
A. True
B. False
80. In this Environment, the java application is the client and DBMS is the database server.
A. Three-Tier JDBC
B. Two-Tier JDBC

 

Đáp án:

1-B, 2-4,3-B,4-B,5-B,6-B,7-B, 8-C, 9-C, 10-C, 11-B, 12-C, 13-D, 14-B, 15-C, 16-B, 17-B, 18-D, 19-D, 20-D, 21-abc, 25-a, 26-b, 26-a, 27-a, 28-a, 29-a, 30-a, 31-c, 32-b, 33-a, 34-b, 35-a, 36-ad, 37-c, 38-a, 39-b, 40-a, 41-a, 42-c, 43-a, 44-b, 45a, 46b, 47a, 48a, 49a, 50b, 51a, 52c, 53a, 54a, 55a, 56c, 57a, 58c, 59a, 60b, 61ade, 62bce, 63b, 64c, 65b, 66d, 67a, 68b, 69a, 70a, 71a, 72b, 73b, 74a, 75a, 76b, 77a, 78c, 79a, 80b. 

Thursday, September 18, 2014

Tài liệu cơ bản về XML (sưu tầm)

Đây là một tài liệu rất cơ bản và chi tiết về XML

Can ban - xml

(sưu tầm từ nguồn Internet)

Thursday, September 11, 2014

JSF and Strut questions and anwsers


  1. Struts was first developed

    1. in an online exchange between several open source developers

    2. over a long holiday weekend(TRUE)

    3. as a commercial package



  2. The reset method on an ActionForm

    1. Sets all properties to their initial value

    2. Sets all properties to null

    3. Repopulates all properties from the request parameters

    4. None of the above(TRUE)



  3. Each Struts Action element is uniquely identified by its

    1. Input attribute

    2. Name attribute

    3. Page attribute

    4. Path attribute(TRUE)



  4. The name of the Application Resources file is set by the servlet init-param named

    1. Application(TRUE)

    2. Resources

    3. ApplicationResources

    4. messages



  5. The validating init-param of the ActionServlet is used to

    1. Bypass calls to the ActionForm validate method

    2. Bypass validation of the Struts configuration file(TRUE)

    3. Generate an error message if an unknown message key is used



  6. To specify an ActionMapping to use when a request doesn't match any other mapping, you can

    1. Use an asterisk for the path property

    2. Set the "default" property of the mapping to "true"

    3. Set the "unknown" property of the mapping to "true"(TRUE)

    4. Set the "missing" init-param of the ActionServlet to the mapping's path



  7. In Struts 1.1, you can change how Struts populates a form by

    1. Overriding the populate method of the ActionForm

    2. Overriding the processPopulate method of the Request Processor(TRUE)

    3. Overriding the populateBean method of the ActionMapping



  8. The < bean:write > tag is:

    1. Always converts HTML markup to entity equivalents, like &lt;

    2. Never converts HTML markup to entity equivalents

    3. Converts markup when filter=true(TRUE)

    4. Converts markup when markup=false



  9. From a MVC perspective, Struts provides the

    1. Model

    2. View

    3. Controller(TRUE)



  10. Struts Framework is well suited for application of ____ size.

    1. Small

    2. Any(TRUE)

    3. Average

    4. Very small



  11. MVC is :

    1. Mode-View-Controller

    2. Model-View-Converter

    3. Model-Viewer-Controller

    4. Model-View-Controller(TRUE)



  12. What is Action Class ?

    1. The Action Class is a wrapper around the business logic and is a part of Model(TRUE)

    2. Nothing special about the Action class

    3. Action Class is a wrapper around the Internet logic

    4. None of the above



  13. An ActionForm is a JavaBean which extends the:

    1. struts.action.ActionForm(TRUE)

    2. apache.struts.action.ActionForm

    3. action.ActionForm

    4. ActionForm



  14. Use the following command (tag) to display the error on the jsp page:

    1. < html:errors/ >

    2. < html:errors/ >(TRUE)

    3. < errors / >

    4. < html=errors/ >



  15. What of following features can _not_ be configured in the JSF configuration file?

    1. Navigation rules

    2. Managed Beans

    3. Custom components

    4. Application Name(TRUE)



  16. In JSF - Which tag must enclose all other tags on a Faces JSP page?

    1. < f:faces >

    2. < f:view >(TRUE)

    3. < h:jsf >

    4. < h:view >



  17. In JSF - Why does the HtmlForm component render a <hidden> field?

    1. Command events

    2. Submit events

    3. Action events(TRUE)

    4. Click events



  18. In JSF - Why does the HtmlForm component render a < hidden > field

    1. To keep track of its identifier

    2. To keep track of the components in tree

    3. To set its submitted property(TRUE)

    4. For JavaScript integration



  19. What are the main features of JSF ? ( Choose many )

    1. Page navigation specification(TRUE)

    2. Standard user interface components like input fields, buttons, and links(TRUE)

    3. Read xml file

    4. Easy error handling(TRUE)



  20. In JSF - Components can be nested within another component

    1. True(TRUE)

    2. False




Next 20 -->

  1. Which one of the following tags renders a single radio button?

    1. <h:selectBooleanCheckbox>

    2. <h:selectOneRadio>

    3. <h:selectOneCheckbox>

    4. <h:selectManyCheckbox>



  2. The tag library that allows you to keep common content in a Web application, at a common location and insert it where necessary is

    1. HTML tag library

    2. Logic tag library

    3. Bean tag library

    4. Template tag library



  3. The tag used to create an input field that is not visible to the user is _______________.

    1. <h:inputSecret>

    2. <h:inputHidden>

    3. <h:inputPassword>

    4. <h:inputText>



  4. ______________ class is used to uniquely represent a locale of a country.

    1. faces.render.Locale

    2. util.Locale

    3. faces.context.Locale



  5. Creating and using a custom converter requires implementing _____________ and _____________ methods provided by Converter interface.

    1. getObject()

    2. getAsObject()

    3. getAsString()

    4. getString()



  6. It is possible to have more than one Faces configuration file.

    1. True

    2. False



  7. ________ classplays the role of the controller and is responsible for handling all the requests.

    1. Action

    2. ActionServlet

    3. RequestProcessor

    4. Plugin



  8. The tag used to create a text box to accept a password is _______________.

    1. <h:inputSecret>

    2. <h:inputHidden>

    3. <h:inputPassword>

    4. <h:inputText>



  9. Which of the following UI Component acts as a container for all other components?

    1. UIParameter

    2. UIForm

    3. UIViewRoot

    4. UISelectItem



  10. Which of the following statements are true about the reset() method of ActionForm class?

    1. Sets all properties to their initial value

    2. Sets all properties to null

    3. Repopulates all properties from the request parameters

    4. None of the above



  11. _______________________ declares a set of rules that define the next view for the user based on his/her actions.

    1. JSF Navigation Model

    2. JSF View Model

    3. JSF Forward Model

    4. JSF Model



  12. The file that provides a set of utility classes and interfaces that handle data structures used to store data in an application is _________.

    1. commons-beanutils.jar

    2. commons-collections.jar

    3. commons-digester.jar

    4. commons-logging.jar



  13. Which method of ActionServlet class maps the servlet name to a URL in the Web application?

    1. init()

    2. save()

    3. addmapping()

    4. addServletMapping()



  14. The JSF tag used to show all the error messages in a JSP page is ____________.

    1. <h:message>

    2. <h:messages>

    3. <f:messages>

    4. <f:message>



  15. Which one of the following JSF expressions, references an application's context path?

    1. #{contextPath}

    2. #{requestContextPath}

    3. #{facesContext.externalContext.requestContextPath}

    4. ${request.contextPath}



  16. Each Struts Action element is uniquely identified by its __________.

    1. Input attribute

    2. Name attribute

    3. Path attribute

    4. Page attribute



  17. Which one of the following events is generated by the <h:commandButton> tag of JSF ?

    1. Command event

    2. Submit event

    3. Action event

    4. Click event



  18. Which one of the following Action classes provides a mechanism for switching between modules in a modularized Struts application?

    1. SwitchAction

    2. DispatchAction

    3. IncludeAction

    4. LocaleAction



  19. The Struts class which handles the actual execution of the request is ________.

    1. ActionForward

    2. Action

    3. RequestProcessor

    4. ActionServlet



  20. The Struts tag used to display the error in the JSP page is ______________.

    1. <html:errors/>

    2. <html:errors>

    3. <errors>

    4. <html=errors>




Next 13 (sun)

  1. Struts was first developed

    1. in an online exchange between several open source developers

    2. over a long holiday weekend

    3. as a commercial package



  2. The reset method on an ActionForm

    1. Sets all properties to their initial value

    2. Sets all properties to null

    3. Repopulates all properties from the request parameters

    4. None of the above (do nothing)



  3. Each Struts Action element is uniquely identified by its

    1. Input attribute

    2. Name attribute

    3. Page attribute

    4. Path attribute



  4. The name of the Application Resources file is set by the servlet init-param named

    1. application

    2. resources

    3. ApplicationResources

    4. messages



  5. The validating init-param of the ActionServlet is used to

    1. Bypass calls to the ActionForm validate method

    2. Bypass validation of the Struts configuration file

    3. Generate an error message if an unknown message key is used



  6. To specify an ActionMapping to use when a request doesn't match any other mapping, you can

    1. Use an asterisk for the path property

    2. Set the "default" property of the mapping to "true"

    3. Set the "unknown" property of the mapping to "true"

    4. Set the "missing" init-param of the ActionServlet to the mapping's path



  7. If you have created a custom ActionMapping subclass with the property "service", you can initialize the value to "selectRecord" using

    1. <init-property name="service" value="selectRecord"/>

    2. <set-property property="service" value="selectRecord"/>

    3. <put-field key="service" content="selectRecord"/>



  8. In Struts 1.1, you can change how Struts populates a form by

    1. Overriding the populate method of the ActionForm

    2. Overriding the processPopulate method of the Request Processor

    3. Overriding the populateBean method of the ActionMapping



  9. The <bean:write> tag is:

    1. Always converts HTML markup to entity equivalents, like &lt;

    2. Never converts HTML markup to entity equivalents

    3. Converts markup when filter=true

    4. Converts markup when markup=false



  10. To prevent possible security issues with the <html:password> tag, you should

    1. Call the reset method if validation fails

    2. Set the tag's redisplay property to false

    3. Set the tag's reset property to false

    4. Use a plain html tag instead



  11. To localize Tiles, you can

    1. Create separate configuration files for each locale

    2. Specify an locale for a definition

    3. Either A or B



  12. To localize Validator forms, you can

    1. Create separate configuration files for each locale

    2. Specify a locale for a form-set

    3. Either A or B



  13. From a MVC perspective, Struts provides the

    1. Model

    2. View

    3. Controller




Next 20 -->> 20 question_3

Thursday, September 4, 2014

Strut2 ví dụ căn bản

 

Basic exercise:

Using Strut 2 to develop login application.

clip_image002

If login fail

clip_image004

If login successful

clip_image006

1. Create Java web application base on Strut2 framework as figure below.

clip_image008

2. Create some file as structure

clip_image009

3. Open struts.xml and modify as

clip_image011

4. Open appResources: create some keys

clip_image012

5. Open Login class and add new code as

clip_image014

6. Generate getter/setter for two field above

clip_image016

7. Next, design login page

clip_image018

8. Next, index.jsp page

clip_image020

9. Next, error.jsp page

clip_image022

10. Now, deploy and run login.jsp page

Strut2-Validation

Using Strut validate input data

clip_image023

If input data invalid

clip_image024

If input data is valid

clip_image025

clip_image027

1. Design customer.jsp as

clip_image029

2. Add some new key to appResources

clip_image030

3. Assign Customer action in struts.xml

clip_image031

4. Add new class with name “Customer” into codes package

clip_image032

5. Generate setter and getter for 4 fields

6. Add new file “Customer-validation.xml” into package

clip_image033

Now, re-deploy and run

Using annotations

All action class must be inside actions package

clip_image034

Strut Controller now change to org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

1 <filter>
2 <filter-name>struts2</filter-name>
3 <filter-class>
4 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
5 </filter-class>
6 <init-param>
7 <param-name>actionPackages</param-name>
8 <param-value>codes</param-value>
9 </init-param>
10 </filter>
11 <filter-mapping>
12 <filter-name>struts2</filter-name>
13 <url-pattern>/*</url-pattern>
14 </filter-mapping>

If your Action extend from ActionSupport, then your Action class name has no rule required.


Ex: Login action beloved


Otherwise, action class name must end with Action string


Ex: account action


1 @Namespace("/")
2 @ResultPath(value = "/")
3 @Results({
4 @Result(name = "success", location = "index.jsp"),
5 @Result(name = "error", location = "error.jsp")}
6 )
7 public class accountAction {
8 @Action(value="account")
9 public String execute() throws Exception {
10 if ("nvmit".equals(getName())) {
11 return SUCCESS;
12 } else {
13 return ERROR;
14 }
15 }
16 private String name ="";
17 public String getName() {
18 return name;
19 }
20 public void setName(String name) {
21 this.name = name;
22 }
23 }

@Namespace Annotation in Struts 2


@Namespace is used at class level or package level. This helps to change the namespace for action class. While accessing or calling action class, it hides package structure. When namespace is applied at package level, all the action of that package gets that namespace as default.


1 @Results({
2 @Result(name = "SUCCESS", location = "/user/index.jsp"),
3 @Result(name = "ERROR", location = "/user/error.jsp")
4 })
5 @Namespaces(
6 @Namespace("/user")
7 )
8 public class Login extends ActionSupport{
9 @Action(value = "/user/login")
10 public String execute() throws Exception {
11 if ("nvmit".equals(getName()) && "nvmit".equals(getPwd())) {
12 return "SUCCESS";
13 } else {
14 return "ERROR";
15 }
16 }
17
18 //Java Bean to hold the form parameters
19 private String name;
20 private String pwd;
21
22 public String getName() {
23 return name;
24 }
25
26 public void setName(String name) {
27 this.name = name;
28 }
29
30 public String getPwd() {
31 return pwd;
32 }
33
34 public void setPwd(String pwd) {
35 this.pwd = pwd;
36 }
37 }
38

The above class can be accessed by @Namespace + @Action that is /user/form
http://localhost:8080/Struts2Demo-1/user/form


Create Project with beloved structure


clip_image035


Project Structure


user/login.jsp


1 <%@ taglib uri="/struts-tags" prefix="s"%>
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
5 <title>Login Page</title>
6 </head>
7 <body>
8 <h3>Welcome User, please login below</h3>
9 <s:form action="/user/login">
10 <s:textfield name="name" label="User Name"></s:textfield>
11 <s:textfield name="pwd" label="Password" type="password"></s:textfield>
12 <s:submit value="Login"></s:submit>
13 </s:form>
14 </body>
15 </html>

user/index.jsp


1 <%@page contentType="text/html" pageEncoding="UTF-8"%>
2 <%@taglib prefix="s" uri="/struts-tags" %>
3 <!DOCTYPE html>
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title>JSP Page</title>
8 </head>
9 <body>
10 <h1>Hello <s:property value="name" /></h1>
11 </body>
12 </html>

account.jsp


1 <%@page contentType="text/html" pageEncoding="UTF-8"%>
2 <%@taglib prefix="s" uri="/struts-tags" %>
3 <!DOCTYPE html>
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title>JSP Page</title>
8 </head>
9 <body>
10 <h1>Hello <s:property value="name" /></h1>
11 </body>
12 </html>
13

Index.jsp same above


 


Download source code ===> here

Translate